linux 部署jar包

Marydon發表於2024-06-18

1.準備工作

linux如果沒有配置java環境變數的話,具體操作見文末推薦。

2.啟動jar包

linux作業系統下啟動jar包的方式和windows作業系統沒有區別。

用法都是遵循java語法規範。

前提:跳轉到要啟動的jar包所在目錄

linux 部署jar包

cd jar包所在絕對路徑

linux 部署jar包

使用預設jdk啟動

檢視當前jdk版本

java -versoin

linux 部署jar包

方式一:nohup不指定輸出檔案
nohup java -jar xxx.jar &

linux 部署jar包

linux 部署jar包

說明:nohup和&指令缺一不可。

nohup:這個命令使得你的應用在退出shell後仍然繼續執行。

確保在SSH會話關閉後,程式仍然執行;否則,在關閉Xshell後,該程式將會終止執行。

如果不使用的話,在關閉Xshell後,該程式會被終止執行。

使用nohup啟動的程序會忽略結束通話訊號,並且會將輸出重定向到一個檔案中,除非另行指定。

也就是說:

當我們使用nohup命令啟動程序時,如果沒有指定日誌輸出位置的話,它會在啟動的時候自動建立nohup.out檔案並將執行日誌寫入到該檔案當中。

&:以後臺守護程序的方式執行(後臺執行),否則,當我們按Ctrl+c退出當前命令的話,該程式將會終止執行。

使用nohup,如果沒有指定輸出檔案的話,會在當前目錄下,自動生成nohup.out檔案,並將日誌寫入到這個檔案當中。

linux 部署jar包

方式二:nohup指定輸出檔案
nohup java -jar xxx.jar > xxx.out 2>&1 &

linux 部署jar包

如果想退出當前命令,按Ctrl+c。

java -jar xxx.jar:java執行jar的指令。

後面跟的日誌檔案,如果帶路徑會輸出到指定目錄下,如果不帶路徑,會輸出到當前操作的目錄下。

另外,如果日誌檔案不存在,會自動建立。

linux 部署jar包

2>&1:這將標準錯誤重定向到標準輸出的位置,也就是指前面的日誌檔案。

&:在命令的末尾,這個符號將命令放到後臺執行。

說明:此命令必須帶上,否則當你退出當前操作後,當前執行的命令會被終止。

linux 部署jar包

./connect-distributed.sh ../config/connect-distributed.properties &

使用上述命令啟動後,會出現如下內容。

linux 部署jar包

也就是:

執行日誌會同時輸出到螢幕上面。

雖然我們透過Ctrl+C退出,並不影響程式在後臺繼續執行。

只使用&,除了上面的缺點外,還有一個,那就是:

當我們關閉Xshell(SSH會話)後,該程式也會被終止。(SSH的英文全稱是:secure Shell。它是一種網路協議,用於計算機之間的加密登入,並提供更安全的SFTP服務)

linux 部署jar包

所以,nohup命令必須使用。

指定jdk啟動

nohup /jdk絕對路徑/bin/java -jar xxx.jar &

linux 部署jar包

啟動時指定檔案字符集

nohup java -Dfile.encoding=utf-8 -jar xxx.jar &

linux 部署jar包

啟動時指定配置檔案(springboot專案)

有的時候,會遇到這種情況:

springboot專案的配置檔案需要修改,但是,我們要不想重新打包,怎麼辦?

可以把修改後的application.yml檔案放到和jar包同級目錄下。

linux 部署jar包

然後在啟動專案的時候,指定使用該配置檔案。

nohup java -jar xxx.jar --spring.config.additional-location=application檔案所在絕對路徑 &

linux 部署jar包

與 --spring.config.location 不同,--spring.config.additional-location 不會使專案預設的配置檔案失效,使用該命令列引數新增的外部配置檔案會與專案預設的配置檔案共同生效,形成互補配置,且其優先順序是最高的,比所有預設配置檔案的優先順序都高。

透過這種方式,我們可以在不影響專案預設配置的情況下,新增特定於環境或特定部署的配置檔案,以滿足不同場景下的需求。

使用外部配置檔案的好處是:我們可以將配置與程式碼分離,使得配置更易於管理和修改。同時,這也為多環境部署和應用程式的可移植性提供了便利。

雖然在啟動的時候,預設配置檔案是:jar包中的application-jxfy.yml,但實際使用的是外部application-jxfy2.yml。

啟動時指定佔用的埠號

nohup java -jar xxx.jar --server.port=埠號 &

linux 部署jar包

檢視啟動/執行日誌

tail -f 日誌檔名稱.字尾名

輸入以上指令,並按Enter鍵執行。

linux 部署jar包

linux 部署jar包

說明:

在專案啟動之後,我們通常需要檢視執行日誌,透過檢視日誌才方便我們判斷專案是否啟動成功。

退出當前命令

快捷鍵:Ctrl+c。

3.結束jar包執行

要想結束某個程式的執行,需要檢視它所對應的程序ID,然後殺掉程式所對應的PID即可。

檢視PID有兩種方式。

方式一:根據專案jar包名稱進行搜尋,獲取程序ID。

ps -ef|grep jar包的完整名稱/部分名稱

linux 部署jar包

linux 部署jar包

根據最後一列(CMD指令)找到自己要關閉程式,第二列就是對應的PID。

方式二:根據專案jar包所佔用的埠,獲取程序ID。

netstat -nltp|grep 要關閉的程式所使用的埠

linux 部署jar包

由上圖所知:

8058埠所對應PID為:3624

殺掉程序即可。

kill PID
kill -9 PID

kill -9 pid:表示強制殺死指定程序。

linux 部署jar包

4.補充說明

java jps命令

說明:為了方便記憶,我們可以將jps認為是:鍵盤手。

linux 部署jar包

如果在linux當中已經配置好了java環境變數,那我們就可以使用jps來檢視當前所有執行的java程序及相關資訊,

如:程序ID、主類名稱和JVM引數等。

檢視java執行的程式/程序

ps -ef|grep java

linux 部署jar包

寫在最後

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

相關推薦:

  • linux 配置java環境變數
  • linux部署nginx
  • Linux 常用操作命令
  • 個人主頁

相關文章