本文列出Java jar包在windows系统上运行的三种方式。
CMD命令行方式运行
这种方式非常简单,打开cmd窗口,输入如下命令即可:
java -jar test.jar
使用批处理脚本运行
使用cmd命令行方式虽然很简单,但是每次都要打开cmd窗口再输入命令,还是有些麻烦,可以写个批处理脚本来代替。先创建个bat文件,比如:run.bat,输入下面几行:
@echo off start javaw -jar C:\Users\samsung\Desktop\test.jar exit
保存后,双击运行即可。
其中,@echo off: 当执行失败的时候,不打印失败信息,根据自己需要选用。
作为Windows服务在后台运行
Java jar 作为Windows服务在后台运行需要借助于第三方工具,常用的是JavaService.exe这个工具,下载地址:http://download.forge.ow2.org/javaservice,64位系统(Java也是64位的)的话必须下载64位版本,比如:JavaService_2_0_10-amd64.zip。
要以Windows服务方式运行需要先注册Windows服务,然后才能启动服务。
注册服务
下载的压缩包解压后即可使用,打开CMD窗口,进入JavaService.exe所在目录,输入如下命令:
JavaService.exe -install test "%JAVA_HOME%"\jre\bin\server\jvm.dll -Djava.class.path=C:\Users\samsung\Desktop\test.jar;"%JAVA_HOME%"\lib\tools.jar -Xms64M -Xmx512M -start org.springframework.boot.loader.JarLauncher
显示如下结果即为注册成功:
C:\Users\samsung\Desktop>JavaService.exe -install test "%JAVA_HOME%"\jre\bin\server\jvm.dll
-Djava.class.path=C:\Users\samsung\Desktop\test.jar;"%JAVA_HOME%"\lib\tools.jar -Xms64M -Xmx512M
-start org.springframework.boot.loader.JarLauncher
The test automatic service was successfully installed
参数解释:
-install test:指定服务名,当前注册的服务名为:test;
-Djava.class.path=C:\Users\samsung\Desktop\test.jar:指定jar包的路径;
-start org.springframework.boot.loader.JarLauncher:指定启动类,即 main 函数所在类,需要带上包名。
注销服务
注销服务输入如下命令:
JavaService.exe -uninstall test
显示如下结果即为注销成功:
C:\Users\samsung\Desktop>JavaService.exe -uninstall test
Successfully uninstalled service test
启动服务
C:\Users\samsung\Desktop>net start test test 服务正在启动 . test 服务已经启动成功。
关闭服务
C:\Users\samsung\Desktop>net stop test test 服务正在停止. test 服务已成功停止。
注意事项:
1. 选择正确的JavaService.exe版本,根据自己的实际情况选择下载32位或64位版本。
2. 启动类类名必须正确,比如springboot项目,其启动类为:org.springframework.boot.loader.JarLauncher。
上述两点需要注意,如果不对的话会导致服务可以注册但无法启动的问题,报错如下:
C:\Users\xxx\Desktop\JavaService-2.0.10>net start test test 服务正在启动 . test 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。