本文列出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 以獲得更多的幫助。