Java jar 在Windows上运行的方法

    本文列出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.JarLauncherThe 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 以获得更多的帮助。