windows jar包啟動的幾種方式介紹
- java -jar xxx.jar(jar包的路徑),最普通簡單的方式,通過windows的命令行窗口啟動,並在命令行窗口運行,輸出。可以在啟動的時候增加參數指定啟動的端口(server.port=8080)或者指定環境等
- start /min java -server -Xms1024m -Xmx20480m -jar xxx.jar;重新啟動一個窗口去運行jar包,不依賴當前黑窗口,該方法是重新啟動一個專門的java窗口去運行jar包,可以設置jvm的參數,有很多博客介紹說這個是jar包后台運行,其實不是,只是不像第一條一樣依賴當前的命令行窗口,但是會依賴另外一個新開的java運行窗口,都是窗口關閉就停止了。
- start /b java -server -Xms1024m -Xmx20480m -jar xxx.jar;類似第一種啟動方式,也是在當前窗口輸出啟動信息,在當前窗口運行,依賴當前命令行窗口,只不過可以指定jvm的參數。
- javaw -jar XXX.jar;javaw也是啟動jar包的一種命令,我只在windows上使用過,javaw.exe是相似的和java.exe 是一個win32的GUI應用,應用提供自己的GUI窗口,不啟用控制台。這個命令可以使jar包后台啟動,輸入命令后當前窗口完成,會在后台啟動一個javaw進程,如果你的程序不是界面圖形化程序,就只會跑在后台。
- Jar 添加為windows service 服務
service.bat %1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE(window.close)&&exit java -sever_name -jar D:\start\123.jar # %1 mshta vbscript:CreateObject(“WScript.Shell”).Run(“%~s0 ::”,0,FALSE)(window.close)&&exit 隱藏cmd的運行窗口。
6.jar包Linux后台不掛斷啟動方式,並指定輸出日志文件:nohup java -jar xxx.jar > log.txt &,輸入此命令后可能會有詢問error日志的輸出地方,可以再次輸入指定輸出的日志文件即可
jar包的停止
以上啟動方式,1,2,3,都可以通過ctrl+c或關閉當前窗口停止,4,5,需要后台查找該程序的進程,通過殺掉進程方式停止
window運行jar包假死現象
1.現象描述
使用java -jar xxx.jar,打包成jar之后部署在windows
上之后,運行一段時間項目就假死一樣,這個狀態下程序是訪問不了的,需要到命令行容器隨意敲一個鍵,總之光標移動了就行,然后卡住的內容就會迅速輸出到窗口,不敲任何鍵程序就一直卡在那
2.根因分析
cmd
默認開啟了“快速編輯模式”,只要當鼠標點擊cmd
任何區域時,就自動進入了編輯模式,之后的程序向控制台輸入內容甚至后台的程序都會被阻塞。
我們在控制台里面回車或者右鍵鼠標后,自動退出了編輯模式。因此,控制又恢復輸出內容,服務端又正常了。
3.解決
1.點擊屬性
2.修復