Search

jar 命令啟動java 指定配置文件路徑 jar如何啟動

jar 命令啟動java 指定配置文件路徑 jar如何啟動

2023-10-06

?
?
?

一、各種啟動方式

1.java -jar
# 例子
java -jar test.jar
1.
2.
這是最簡單的啟動方式,同時弊端也是很多的。

弊端1:exit 退出終端會導致java進程中斷。
弊端2:ctrl+c 退出啟動展示頁會導致java進程中斷。
弊端3:直接關閉終端會導致java進程中斷(啟動時和啟動完關閉都會導致java進程終端)。
弊端4:控制臺日志不打?。ㄟ@個可以不算弊端吧,其實很多場景不需要這個日志,這里姑且算是吧)

所以該命令是不能直接使用的。下面是演示使用ctrl+c退出啟動展示頁后程序進行自動中斷的截圖:

jar 命令啟動java 指定配置文件路徑 jar如何啟動插圖

從截圖中可以看到,當使用ctrl+c時,終端會終止剛剛使用java -jar啟動的進程,所以導致了java進程的中斷。

2.java -jar test.jar &
# 例子
java -jar test.jar &

可以看到這種啟動方式是多了&,&的作用是讓程序可以以后臺模式運行,這樣我們使用ctrl+c,或者exit退出啟動頁面時程序不會被終止,但是關閉終端會導致程序退出,無論是程序啟動時直接關閉終端還是程序啟動完畢在關閉,都會導致程序異常終止,總結如下:

弊端1:直接關閉終端會導致java進程中斷(啟動時和啟動完關閉都會導致java進程終端)。
弊端2:控制臺日志不打?。ㄟ@個可以不算弊端吧,其實很多場景不需要這個日志,這里姑且算是吧)

下面是使用ctrl+c退出啟動頁的結果,可以發(fā)現(xiàn)此時程序還在運行。

jar 命令啟動java 指定配置文件路徑 jar如何啟動插圖1

3.nohup java -jar test.jar
# 例子
nohup java -jar test.jar

該命令相當于第一個場景增加了nohup命令,nohup命令其實就是為了指定輸出文件的,用在這里自然就是指定java的輸出了。nohup默認會將文件打印在當前文件夾下的nohup.out文件中,若是該文件權限不足,則會將日志輸出到$HOME/nohup.out。值得一提的事,這里的輸出接收的都是java控制臺的輸出。同時第一個場景擁有的弊端除了不打印控制臺日志他都有。所以這個命令我們一般也不用。

弊端1:exit 退出終端會導致java進程中斷。
弊端2:ctrl+c 退出啟動展示頁會導致java進程中斷。
弊端3:直接關閉終端會導致java進程中斷(啟動時和啟動完關閉都會導致java進程終端)。

【這里不重復驗證了】

4.nohup java -jar test.jar &
# 例子
nohup java -jar test.jar &

與上個命令相比增加了 &,作用可以類比第二個場景,然后增加了日志輸出。那是不是說還是有“關閉終端會導致程序終止”這個弊端呢,答案是否,使用這個命令關閉終端(無論是啟動時還是啟動完畢)都不會終止程序(原因是因為關閉終端這里其實關閉的是nohup的命令層級,對java程序已經起不到影響,linux肯定對nohup命令做了特殊處理)。
所以說以上所有的弊端,這個命令已經沒有了,啟動程序使用這個命令也是完全沒有問題的。

弊端1:日志定向輸出當前文件夾下的nohup.out(與下面幾個命令相比,姑且算是弊端吧)

5.nohup java -jar test.jar > ./info.log &
# 例子
nohup java -jar test.jar > ?./info.log &

該命令沒有弊端,與上一個場景的區(qū)別是會將日志打印到指定的info.log下面。不過打印方式是覆蓋。也就是說每次啟動以后,都會將之前的日志覆蓋

6. nohup java -jar test.jar >> ./info.log &
# 例子
nohup java -jar test.jar >> ?./info.log &

該命令沒有弊端,與上一個場景的區(qū)別是會將日志打印到指定的info.log下面。不過打印方式是拼接。也就是說每次啟動以后,都會將本次的日志拼接到原日志之后進行輸出,這里日志因為是控制臺日志,一般沒必要拼接

7. nohup java -jar test.jar >> /dev/null &
# 例子
nohup java -jar test.jar >> /dev/null &

這個命令是將日志輸出到/dev/null,/dev/null是linux系統(tǒng)里的黑洞,其實可以理解為垃圾桶,相當于把日志扔了不要了,其他就沒什么區(qū)別了。
【這幾個命令就不重復測試了】

二、總結
常用的命令其實就三個,根據(jù)需要選擇即可

登錄后復制?
# 需要打印控制臺日志,無需保留之前的日志信息
nohup java -jar test.jar > ?./info.log &
# 需要打印控制臺日志,需要保留之前的日志信息
nohup java -jar test.jar >> ?./info.log &
# 不需要打印控制臺日志
nohup java -jar test.jar >> /dev/null &

目錄
日韩欧美人妻综合| 亚洲综合区欧美一区二区| 性一乱一交一免费看视频| avtt天堂网先锋伦理| 欧美精品视频在线| 国产欧美日本韩国一区二区| 成人久久久久久蜜桃免费| 日韩亚洲AV无码一区二区不卡| 亚洲中文字幕在线无码一区二区| 免费看澡美女逼视频看看| 两个人免费视频高清| 一个色综合色综合色综合| 中文字幕你懂的av一区二区| 骚逼被狂插视频教程| 被医生添奶头和下面好爽| 欧美精品性做久久久久久| 国产 欧美 日韩 黄片| 欧美日韩国产欧美| 很黄很爽的免费视频大全| 激烈18禁高潮视频免费| 60秒动态视频在线观看| 一区二区三区国产l精品欧美| 午夜国产精品午夜福利网| 日韩午夜精品中文字幕| 曰木高清免费一本| 好嗨哟直播看片在线观看| 美女麻豆颜色光屁股眼子| 激情亚洲人妻精品| 想被操在线啊啊啊啊| 欧美性做爰片免费视频看| 久久丁香花五月天色婷婷| 国产成人无码AV一区二区三区| 色噜噜噜噜一区二区三区| 女人被大鸡吧操逼| 大粗鳮巴r教师人妻91| 国产精品999午夜激情| 亚洲日韩不卡一区二区三区| 国产一区二区三区午夜精品久久| 亚洲一区二区三区四区国产| 日本熟妇 bbw| 男插女下面高潮视频|