使用JAVA命令運(yùn)行JAR包以及日志輸出詳解
前言
當(dāng)我們的電腦裝好JAVA開發(fā)環(huán)境后,即JDK(不管是Linux系統(tǒng)下還是Windows下安裝了JDK),那么我們可以將項(xiàng)目打包成JAR包,并可以對JAR包進(jìn)行運(yùn)行,可以查看實(shí)時(shí)的日志信息,可以保存日志文件。下面針對多種情況,描述如何在JDK環(huán)境下,使用JAVA命令運(yùn)行JAR包及運(yùn)行日志輸出。
在這里舉例,JAVA項(xiàng)目打包成的JAR包名稱為Demo.jar,
1、運(yùn)行方式1:直接運(yùn)行
java -jar Demo.jar
按下ctrl+C ,會關(guān)閉當(dāng)前ssh或者直接關(guān)閉窗口,當(dāng)前程序都會退出
2、運(yùn)行方式2:程序可以在后臺執(zhí)行
java -jar Demo.jar &
在命令的結(jié)尾添加 “&” ,&表示該程序可以在后臺執(zhí)行,但是在當(dāng)窗口關(guān)閉時(shí),程序也會中止運(yùn)行。
注:方式1、2都實(shí)用與Windows和Linux系統(tǒng)下
3、運(yùn)行方式3:Linux系統(tǒng)下的后臺運(yùn)行并輸出日志文件
nohup java -jar Demo.jar &
命令最前面?zhèn)€nohup關(guān)鍵字,這樣程序就會不掛斷運(yùn)行命令, 當(dāng)ssh終端關(guān)閉時(shí),程序仍然在運(yùn)行,當(dāng)前程序的日志會被寫入到當(dāng)前目錄的nohup.out文件中
4、運(yùn)行方式4:Linux系統(tǒng)下的后臺運(yùn)行并輸出指定日志文件
nohup java -jar Demo.jar > log.out &
當(dāng)前程序的日志會被寫入到當(dāng)前目錄的log.out文件中,你也可以改目錄在log.out文件名中加上路徑。
以上是我們常用的使用JAVA命名運(yùn)行JAR包及日志輸出,以下做額外情況的補(bǔ)充:
5、額外補(bǔ)充:以下還有一些其他情況下的命令,自行根據(jù)需求選擇
如果不想寫日志,可以將日志重定向到 /dev/null 中,/dev/null代表linux的空設(shè)備文件,所有往這個(gè)文件里面寫入的內(nèi)容都會丟失
nohup java -jar Demo.jar > /dev/null &
標(biāo)準(zhǔn)輸出就會不再存在,沒有任何地方能夠找到輸出的內(nèi)容
nohup java -jar Demo.jar >/dev/null 2>log.error &
只輸出錯(cuò)誤信息到日志文件,標(biāo)準(zhǔn)輸出不寫入日志文件,直接丟棄
nohup java -jar Demo.jar >/dev/null 2>&1 &
標(biāo)準(zhǔn)輸出(stdout)重定向到/dev/null中(丟棄標(biāo)準(zhǔn)輸出),然后標(biāo)準(zhǔn)錯(cuò)誤輸出(stderror)由于重用了標(biāo)準(zhǔn)輸出的描述符,所以標(biāo)準(zhǔn)錯(cuò)誤輸出也被定向到了/dev/null中,錯(cuò)誤輸出同樣也被丟棄了
nohup java -jar Demo.jar >log.out 2>&1 &
標(biāo)準(zhǔn)輸出重定向到log.out中,然后錯(cuò)誤輸出由于重用了標(biāo)準(zhǔn)輸出的描述符,所以錯(cuò)誤輸出也被定向到了log.out中
但是不管那種情況,如果日志輸出,日志文件都會增加很快,造成單個(gè)文件很大。所以需要拆分文件
1:定時(shí)作業(yè),每天將日志文件復(fù)制一份,然后將當(dāng)前的日志文件清空。
2:借助 cronolog來分隔日志
nohup java -jar Demo.jar | /usr/local/cronolog/sbin/cronolog logs/console-%Y-%m-%d.out &
這樣每天會產(chǎn)生一個(gè)console開頭的日志文件。
總結(jié)
到此這篇關(guān)于使用JAVA命令運(yùn)行JAR包以及日志輸出的文章就介紹到這了,更多相關(guān)JAVA運(yùn)行JAR包及日志輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot敏感字段脫敏的實(shí)現(xiàn)思路
這篇文章主要介紹了Springboot敏感字段脫敏的實(shí)現(xiàn)思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Java實(shí)現(xiàn)插入排序算法可視化的示例代碼
插入排序的算法描述是一種簡單直觀的排序算法。其原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。本文將用Java語言實(shí)現(xiàn)插入排序算法并進(jìn)行可視化,感興趣的可以了解一下2022-08-08
IntelliJ?IDEA教程之clean或者install?Maven項(xiàng)目的操作方法
這篇文章主要介紹了IntelliJ?IDEA教程之clean或者install?Maven項(xiàng)目的操作方法,本文分步驟給大家介紹兩種方式講解如何調(diào)試出窗口,需要的朋友可以參考下2023-04-04
Java代碼實(shí)現(xiàn)自動(dòng)檢測并刪除Excel中的空白行與空白列
無效數(shù)據(jù)不僅影響報(bào)表的美觀,更會嚴(yán)重干擾后續(xù)的數(shù)據(jù)分析,本文將介紹如何通過 Java 代碼自動(dòng)檢測并刪除 Excel 中的空白行和空白列,有需要的小伙伴可以了解下2026-03-03
Mybatis-Plus中Mapper的接口文件與xml文件相關(guān)的坑記錄
這篇文章主要介紹了Mybatis-Plus中Mapper的接口文件與xml文件相關(guān)的坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

