Linux下運行jar包爲什麼要用nohup命令

前言

在本地開發完的Java項目如果只是在本地運行是非常方便的,在IDE裏執行運行在帶有Main函數的Java文件裏運行run就可以了。在服務器上運行Java項目就稍微麻煩一些,但是也不復雜。這些都是在剛學習Java時候都必須會的東西,用了IDE後反而會讓你忘記最開始接觸Java時候的一些知識點。

jar啓動方式

本地寫的demo程序打包成demo.jar,上傳到Linux服務器後,執行jar包有如下幾種方式。

第1種

java -jar demo.jar

說明:用這種方法啓動後,不能繼續執行其它命令了,如果想要繼續執行其它命令,就都打斷,打斷一般用ctrl+c

第2種

java -jar demo.jar &

第2種在第1種方式的基礎上在命令的結尾增加了&&表達的意思是在後臺運行
這種方式可以避免打斷後程序停止的問題,但是避免不了關閉當前窗口後程序停止的問題。

第3種

nohup java -jar demo.jar &

第3種在第2種方式的基礎上,在命令的最前面增加了nohupnohub是什麼?

nohup是不掛斷運行命令,當賬戶退出或終端關閉時,程序仍然運行。

加了nohup後,即使關掉命令窗口,後臺程序demo.jar也會一直執行。

第4種

nohup java -jar demo.jar >1.txt &

第4種在第3種的基礎上,在後面增加了>1.txt,意思是將nohup java -jar demo.jar 的輸出重定向1.txt文件中,即輸出內容不打印到當前窗口上,而是輸出到1.txt文件中。

第3種沒有加>1.txt,它的輸出重定向到nohup.out文件中,nohup.out也就是nohup命令的默認輸出文件

總結

通過幾種方式的對比,能得出結論—執行jar文件用第4種方式最好,同時可以把它寫成一個腳本,不用每次都寫一遍。新建start.sh,根據我上傳的demo.jar,輸出到1.txt中,具體腳本如下:

nohup java -jar demo.jar >1.txt &

一句話:Linux下執行jar文件,一定要用nohup命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章