指定JDK运行可执行jar包
1. 背景
工作中遇到这么一个场景:windows服务器上配置的jdk环境变量是8而且不可更改,但是某个批处理命令下运行的可执行jar包最高只支持jdk 1.6运行。
2. 操作过程
打开cmd命令行窗口,依次执行如下命令:
set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_43";
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
set Path=%JAVA_HOME%\bin;
上述命令用于手动设置环境变量的java_home和path,是需指定的jdk版本的路径,该操作仅在本次生效,不影响系统的环境变量。然后再用java -jar xxxx.jar命令运行对应的可执行jar包即可。
如下是我的xx.bat批处理文件中要执行某个jar包的代码,你可以右键编辑bat文件用记事本打开然后键入以下类似的命令:
set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_43"
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
set Path=%JAVA_HOME%\bin;
java -jar loader.jar
3. 踩坑
由于我的jdk目录中包含空格,所以set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_43";这句命令中的路径用双引号包裹了起来,如果不扩起来的话,系统会把C:\Program截断。如果你的目录中不包含空格可以不使用双引号扩起来。
后台运行可执行jar包
在与jar包同一目录下创建启动和停止可执行bat文件,具体内容如下:
# start.bat
@echo off
start javaw -jar jar包名称.jar
# shutdown.bat
@echo off
taskkill /f /im javaw.exe
exit 0