Linux后臺(tái)運(yùn)行jar程序的流程步驟
準(zhǔn)備工作
在開(kāi)始之前,確保您的Linux系統(tǒng)中已經(jīng)安裝了Java運(yùn)行環(huán)境(JRE 或 JDK)。
步驟一:創(chuàng)建一個(gè)可執(zhí)行的jar文件
首先,確保你已經(jīng)編寫(xiě)了一個(gè)可執(zhí)行的Java程序,并將其打包成一個(gè)jar文件。如果你已經(jīng)有一個(gè)可執(zhí)行的jar文件,可以跳過(guò)這一步。
$ cd /path/to/your/java/project $ javac YourProgram.java $ jar cvfe YourProgram.jar YourProgram YourProgram.class
在上述代碼片段中,YourProgram.java是你的Java程序文件,YourProgram是你的主類名,YourProgram.class是編譯后的字節(jié)碼文件。執(zhí)行這些命令將創(chuàng)建一個(gè)名為YourProgram.jar的jar文件。
步驟二:在后臺(tái)運(yùn)行jar程序
要在后臺(tái)運(yùn)行jar程序,可以使用以下命令:
$ nohup java -jar YourProgram.jar > output.log 2>&1 &
在上述命令中,nohup命令用于使程序忽略SIGHUP信號(hào),并繼續(xù)在后臺(tái)運(yùn)行。java -jar YourProgram.jar是運(yùn)行jar程序的命令。> output.log將程序的標(biāo)準(zhǔn)輸出重定向到一個(gè)名為output.log的文件。2>&1將標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到和標(biāo)準(zhǔn)輸出相同的地方。&用于將命令放入后臺(tái)執(zhí)行。 這樣,您的jar程序就會(huì)在后臺(tái)運(yùn)行,并將輸出寫(xiě)入output.log文件中。您可以使用tail -f output.log命令來(lái)查看實(shí)時(shí)日志。
步驟三:查看后臺(tái)進(jìn)程
可以使用以下命令來(lái)查看當(dāng)前運(yùn)行的后臺(tái)進(jìn)程:
$ ps -ef | grep YourProgram.jar
上述命令會(huì)列出所有包含YourProgram.jar的進(jìn)程。您可以根據(jù)需要?dú)⑺乐付ㄟM(jìn)程,使用kill命令,如下所示:
$ kill process_id
在上述命令中,process_id是您要終止的進(jìn)程的ID。 通過(guò)以上步驟,您就可以在Linux系統(tǒng)中成功地將一個(gè)Java的jar程序以后臺(tái)進(jìn)程的方式運(yùn)行起來(lái)。
示例代碼,以幫助理解:
#!/bin/bash # 進(jìn)入jar程序所在的目錄 cd /path/to/your/jar/program # 檢查程序是否已經(jīng)在運(yùn)行 if pgrep -f "YourProgram.jar" > /dev/null; then echo "程序已在后臺(tái)運(yùn)行。" else # 啟動(dòng)jar程序 nohup java -jar YourProgram.jar > output.log 2>&1 & echo "程序已成功啟動(dòng)并在后臺(tái)運(yùn)行。" fi
在上述示例代碼中,我們首先通過(guò)cd命令進(jìn)入了存放jar程序的目錄。然后,使用pgrep命令檢查是否已有同名的后臺(tái)進(jìn)程在運(yùn)行。如果已經(jīng)有同名的進(jìn)程在運(yùn)行,輸出提示信息并結(jié)束腳本的執(zhí)行。如果沒(méi)有同名進(jìn)程在運(yùn)行,我們執(zhí)行nohup java -jar YourProgram.jar > output.log 2>&1 &命令來(lái)啟動(dòng)jar程序,并將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到output.log文件中。同時(shí),使用nohup命令使程序忽略SIGHUP信號(hào),并繼續(xù)在后臺(tái)運(yùn)行。 將上述代碼保存為一個(gè)shell腳本文件(例如run_program.sh),并給予執(zhí)行權(quán)限(chmod +x run_program.sh)。然后,您可以通過(guò)在終端中運(yùn)行./run_program.sh來(lái)執(zhí)行該腳本。 對(duì)于該示例代碼,假設(shè)您的jar程序文件名為YourProgram.jar,并且存放在/path/to/your/jar/program目錄下。腳本會(huì)檢測(cè)是否已有同名的后臺(tái)進(jìn)程在運(yùn)行,如果沒(méi)有則啟動(dòng)程序,并將輸出日志寫(xiě)入output.log文件中。 請(qǐng)注意,示例代碼中使用了絕對(duì)路徑,您需要根據(jù)實(shí)際情況修改路徑和文件名以適配您的jar程序。
jar是Java中的一個(gè)命令行工具,用于創(chuàng)建、查看和操作Java歸檔文件(JAR文件)。JAR(Java Archive)文件是一種特殊的壓縮文件格式,可以方便地打包和分發(fā)Java程序中的類、資源文件和元數(shù)據(jù)等內(nèi)容。 jar命令的基本語(yǔ)法如下:
jar [選項(xiàng)] [jar文件] [輸入文件]
以下是一些常用的jar命令選項(xiàng):
- c:創(chuàng)建新的JAR文件。
- x:解壓縮已有的JAR文件。
- t:列出JAR文件中的內(nèi)容。
- u:更新JAR文件中的已有文件。
- v:對(duì)操作進(jìn)行詳細(xì)輸出,即顯示每個(gè)文件的詳細(xì)信息。
- f:指定JAR文件的名稱。 以下是jar命令的一些常見(jiàn)用法:
- 創(chuàng)建JAR文件:
jar cf YourProgram.jar YourClass.class
上述命令將以YourClass.class文件創(chuàng)建一個(gè)名為YourProgram.jar的JAR文件。
- 解壓JAR文件:
jar xf YourProgram.jar
上述命令將解壓縮名為YourProgram.jar的JAR文件到當(dāng)前目錄。
- 列出JAR文件中的內(nèi)容:
jar tf YourProgram.jar
上述命令將列出名為YourProgram.jar的JAR文件中的所有文件。
- 向已有的JAR文件中添加文件:
jar uf YourProgram.jar YourClass.class
上述命令將向名為YourProgram.jar的JAR文件中添加YourClass.class文件。
- 查看JAR文件的詳細(xì)信息:
jar tvf YourProgram.jar
上述命令將顯示名為YourProgram.jar的JAR文件的詳細(xì)信息,包括每個(gè)文件的權(quán)限、大小和修改日期等。 jar命令不僅可以用于打包和解壓JAR文件,還可以用于操作WAR文件(Web Application Archive)和EAR文件(Enterprise Application Archive)等。您可以通過(guò)添加不同的選項(xiàng)和參數(shù)來(lái)實(shí)現(xiàn)更多復(fù)雜的操作。
到此這篇關(guān)于Linux后臺(tái)運(yùn)行jar程序的流程步驟的文章就介紹到這了,更多相關(guān)Linux后臺(tái)運(yùn)行jar程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解CentOS7使用firewalld打開(kāi)關(guān)閉防火墻與端口
本篇文章主要介紹了CentOS7使用firewalld打開(kāi)關(guān)閉防火墻與端口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01在linux中用同一個(gè)版本的R 同時(shí)安裝 Seurat2 和 Seurat3的教程
這篇文章主要介紹了在linux中用同一個(gè)版本的R 同時(shí)安裝 Seurat2 和 Seurat3的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08在Linux分區(qū)或邏輯卷中創(chuàng)建文件系統(tǒng)的方法
這篇文章主要給大家介紹了關(guān)于如何在Linux分區(qū)或邏輯卷中創(chuàng)建文件系統(tǒng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04