Java是一種廣泛應用於後台開發的編程語言,而jar(Java Archive)文件則是一種Java語言編寫的可執行文件。在很多場景中,我們需要將jar文件以後台運行的方式來保證應用的持續運行,本文將從多個方面來詳細介紹Java-Jar後台運行。
一、使用nohup命令
nohup是一個用於忽略掛起信號並將程序放在後台運行的命令。可以使用以下命令來將jar文件放在後台運行:
nohup java -jar example.jar >/dev/null 2>&1 &
其中example.jar為要執行的jar文件名,通過/dev/null將標準輸出和標準錯誤輸出重定向到空設備,&符號放在命令末尾,表示該命令將被放置在後台。
二、使用screen命令
在Linux中,可以使用screen命令來將jar文件放在後台運行。以下是相關命令:
//創建一個名為java-screen的窗口 screen -S java-screen //進入java-screen窗口 screen -r java-screen //退出窗口但不停止程序 Ctrl + a d //結束程序 Ctrl + c
在java-screen窗口中輸入java -jar example.jar命令即可將jar文件放在後台運行。
三、編寫腳本文件
為了方便地將jar文件放在後台運行,我們可以編寫一個腳本文件。以下是一個簡單的腳本文件示例:
#!/bin/sh java -jar /path/to/example.jar >> /var/log/example.log 2>&1 &
將腳本文件保存為example.sh,賦予可執行權限(chmod +x example.sh)後,運行該腳本文件即可將jar文件放在後台運行。>>表示追加輸出到example.log文件,2>&1表示將標準錯誤輸出重定向到標準輸出。
四、使用systemd服務
在Linux系統中,可以使用systemd來創建一個服務並將jar文件放在後台運行。以下是相關配置文件示例:
[Unit] Description=Example Service After=syslog.target [Service] User=root ExecStart=/usr/bin/java -jar /path/to/example.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target
將配置文件保存為example.service,放置在/etc/systemd/system/目錄下(或其他systemd配置目錄),通過systemctl enable example.service命令將服務設置為自啟動。之後,可以通過systemctl start example.service命令來啟動服務。
五、使用Docker容器
Docker是一種輕量級容器虛擬化技術,可以將jar文件打包為一個Docker鏡像,並在容器中運行。以下是相關Dockerfile示例:
FROM openjdk:8-jdk-alpine COPY target/example.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"]
將Dockerfile和example.jar文件放置在同一目錄下,運行以下命令將Docker鏡像構建出來:
docker build -t example-image .
之後,可以使用以下命令將Docker容器運行在後台:
docker run -d --name example-container example-image
六、總結
使用以上任意一種方法,都可以將jar文件放在後台運行,並保證應用的持續運行。在實際應用中,可以根據需求選擇最適合的方式進行使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186199.html