如何写一个 bat 文件启动 jar 包
先给一个示例
@echo off chcp 65001 set i=3 :restart start /b /wait ./jre_1.8_32/bin/java -Dloader.path=./lib -Xmx256m -Xms128m -Dfile.encoding=utf-8 -jar client.jar echo "遇到错误停止运转10秒后自动重启" timeout /t 10 if %i% GTR 0 ( set /a i = %i% - 1 goto restart ) pause
- @echo off
echo 表示将内容输出到窗口 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
- chcp 65001
启动 jar 包后输出日志时,中文会乱码 Java代码中统一编码为UTF8,打包成Jar通过CMD运行,都会出现中文字符串为GBK问题。根源——cmd/bash默认的编码是GBK。 打开cmd,输入以下命令:chcp 65001 更改cmd的编码为UTF-8 最好也要规定执行java时的编码方式,把jvm的读写文件、也就是流的编码设置为utf-8。这样输出输入显示都是utf-8:
java -Dfile.encoding=utf-8 -jar XXX.jar
参考:
- start 命令
/b 应⽤程序时不必打开新的“命令提⽰符”窗⼝。 /wait 启动应⽤程序,并等待其结束。
- timeout /t 10
带倒计时提示信息休眠 10 秒
- %i%
使用 %i%,取出 i 的值 set i=3给变量 i 赋值 3 set /a执行数学计算 数值的比较:比较参数如下: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于
- goto
**.**bat 中没有 while 语句,可以使用 if 加 goto 来替代
goto 命令 跳转的意思,用 :XX 构筑一个标记,用 goto XX跳转到XX标记处。
- pause
暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行
.bat 学习网址:
- BAT 教程&资料:
- BAT 命令常用 API:
- BAT 基础知识 — 主要是 start 命令的详细用法:
- bat 脚本的几种休眠方式:
- bat 启动 jar 包导致中文编码为 GBK:
- bat 批处理启动 jar: