Windows bat 脚本编写注意
CMD 黑窗口中文乱码
记事本打开 .bat 文件,选择【文件】-【另存为】然后下面的编码选择:ANSI,然后保存即可。
切换并进入运行目录到脚本所在的目录
bash
cd /d %~dp0
# 关于 cd 的 /d 参数,在cmd中敲入cd /? ,可以看到 /d 参数的解释如下:
# 使用 /D 命令行开关,除了改变驱动器的当前目录之外,还可改变当前驱动器。
# 关于 %~dp0 的批处理命令的详细解释:
# %~dp0 “d” 为 Drive 的缩写,即为驱动器,磁盘、“p” 为Path缩写,即为路径,目录。
# 选项语法:
# ~0 - 删除任何引号("),扩充%0,
# %~d0 - 仅将%0扩充到一个驱动器号,
# %~p0 - 仅将%0扩充到一个路径。
设置 JAVA_HOME 和 Path
bash
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202
set Path=%JAVA_HOME%\bin
# 设置 CLASSPATH
set CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;ar;lib/run.jar
# 然后脚本默认就是使用上面设置的 JAVA_HOME 来启动 jar 应用了,比如下面这样:
# java -jar vitality-admin.jar
启动 java 示例脚本
bash
rem 使用者应根据自身平台编码自行转换 防止乱码 例如 win使用gbk编码
@echo off
title=Vitality-Admin
echo 启动倒计时:
timeout /T 10 /NOBREAK
rem jar平级目录
set AppName=vitality-admin.jar
rem JVM参数
set JVM_OPTS="-Dname=%AppName% -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai -Xms1024m -Xmx4096m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
set pid=%%a
set image_name=%%b
)
if defined pid (
echo %%is running
PAUSE
)
echo starting……
java %JVM_OPTS% -jar %AppName%
PAUSE