如何写一个 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
  1. @echo off

echo 表示将内容输出到窗口 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

  1. 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

参考:

  1. start 命令

/b 应⽤程序时不必打开新的“命令提⽰符”窗⼝。 /wait 启动应⽤程序,并等待其结束。

  1. timeout /t 10

带倒计时提示信息休眠 10 秒

  1. %i%

使用 %i%,取出 i 的值 set i=3给变量 i 赋值 3 set /a执行数学计算 数值的比较:比较参数如下: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于

  1. goto

**.**bat 中没有 while 语句,可以使用 if 加 goto 来替代

goto 命令 跳转的意思,用 :XX 构筑一个标记,用 goto XX跳转到XX标记处。
  1. pause

暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行

.bat 学习网址:

  1. BAT 教程&资料:
  2. BAT 命令常用 API:
  3. BAT 基础知识 — 主要是 start 命令的详细用法:
  4. bat 脚本的几种休眠方式:
  5. bat 启动 jar 包导致中文编码为 GBK:
  6. bat 批处理启动 jar:
经验分享 程序员 微信小程序 职场和发展