使用JAVA命令運行JAR包以及日志輸出詳解
前言
當我們的電腦裝好JAVA開發(fā)環(huán)境后,即JDK(不管是Linux系統(tǒng)下還是Windows下安裝了JDK),那么我們可以將項目打包成JAR包,并可以對JAR包進行運行,可以查看實時的日志信息,可以保存日志文件。下面針對多種情況,描述如何在JDK環(huán)境下,使用JAVA命令運行JAR包及運行日志輸出。
在這里舉例,JAVA項目打包成的JAR包名稱為Demo.jar,
1、運行方式1:直接運行
java -jar Demo.jar
按下ctrl+C ,會關(guān)閉當前ssh或者直接關(guān)閉窗口,當前程序都會退出
2、運行方式2:程序可以在后臺執(zhí)行
java -jar Demo.jar &
在命令的結(jié)尾添加 “&” ,&表示該程序可以在后臺執(zhí)行,但是在當窗口關(guān)閉時,程序也會中止運行。
注:方式1、2都實用與Windows和Linux系統(tǒng)下
3、運行方式3:Linux系統(tǒng)下的后臺運行并輸出日志文件
nohup java -jar Demo.jar &
命令最前面?zhèn)€nohup關(guān)鍵字,這樣程序就會不掛斷運行命令, 當ssh終端關(guān)閉時,程序仍然在運行,當前程序的日志會被寫入到當前目錄的nohup.out文件中
4、運行方式4:Linux系統(tǒng)下的后臺運行并輸出指定日志文件
nohup java -jar Demo.jar > log.out &
當前程序的日志會被寫入到當前目錄的log.out文件中,你也可以改目錄在log.out文件名中加上路徑。
以上是我們常用的使用JAVA命名運行JAR包及日志輸出,以下做額外情況的補充:
5、額外補充:以下還有一些其他情況下的命令,自行根據(jù)需求選擇
如果不想寫日志,可以將日志重定向到 /dev/null 中,/dev/null代表linux的空設(shè)備文件,所有往這個文件里面寫入的內(nèi)容都會丟失
nohup java -jar Demo.jar > /dev/null &
標準輸出就會不再存在,沒有任何地方能夠找到輸出的內(nèi)容
nohup java -jar Demo.jar >/dev/null 2>log.error &
只輸出錯誤信息到日志文件,標準輸出不寫入日志文件,直接丟棄
nohup java -jar Demo.jar >/dev/null 2>&1 &
標準輸出(stdout)重定向到/dev/null中(丟棄標準輸出),然后標準錯誤輸出(stderror)由于重用了標準輸出的描述符,所以標準錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了
nohup java -jar Demo.jar >log.out 2>&1 &
標準輸出重定向到log.out中,然后錯誤輸出由于重用了標準輸出的描述符,所以錯誤輸出也被定向到了log.out中
但是不管那種情況,如果日志輸出,日志文件都會增加很快,造成單個文件很大。所以需要拆分文件
1:定時作業(yè),每天將日志文件復(fù)制一份,然后將當前的日志文件清空。
2:借助 cronolog來分隔日志
nohup java -jar Demo.jar | /usr/local/cronolog/sbin/cronolog logs/console-%Y-%m-%d.out &
這樣每天會產(chǎn)生一個console開頭的日志文件。
總結(jié)
到此這篇關(guān)于使用JAVA命令運行JAR包以及日志輸出的文章就介紹到這了,更多相關(guān)JAVA運行JAR包及日志輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java ArrayList如何實現(xiàn)生成不重復(fù)隨機數(shù)
這篇文章主要介紹了Java ArrayList如何實現(xiàn)生成不重復(fù)隨機數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09解決安裝mysqlclient的時候出現(xiàn)Microsoft Visual C++ 14.0 is required報錯
這篇文章主要介紹了解決安裝mysqlclient的時候出現(xiàn)Microsoft Visual C++ 14.0 is required報錯問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11Springboot集成Elasticsearch的步驟與相關(guān)功能
ElasticSearch是開源搜索平臺領(lǐng)域的一個新成員,?ElasticSearch是一個基于Lucene構(gòu)建的開源,分布式,RESTful搜索引擎,這篇文章主要給大家介紹了關(guān)于Springboot集成Elasticsearch的相關(guān)資料,需要的朋友可以參考下2021-12-12Java字節(jié)緩存流的構(gòu)造方法之文件IO流
這篇文章主要介紹了Java字節(jié)緩存流的構(gòu)造方法之文件IO流,同時也介紹了字符流中的一些相關(guān)的內(nèi)容,并且通過大量的案例供大家理解。最后通過一些經(jīng)典的案例幫助大家對前面所學的知識做了一個綜合的應(yīng)用,需要的朋友可以參考一下2022-04-04SpringBoot使用Minio進行文件存儲的實現(xiàn)
本文主要介紹了SpringBoot使用Minio進行文件存儲的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07Maven和IntelliJ IDEA搭建多模塊微服務(wù)的實現(xiàn)
本文主要介紹了Maven和IntelliJ IDEA搭建多模塊微服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-05-05