java -jar啟動(dòng)項(xiàng)目以及日志輸出的相關(guān)問(wèn)題
windows下啟動(dòng)、停止、重啟jar項(xiàng)目
后臺(tái)啟動(dòng)
@echo off START "app" javaw -jar app-0.0.1-SNAPSHOT.jar
- 其中的app是你這個(gè)bat文件的名字
- javaw是jre中的后臺(tái)啟動(dòng)的文件在jre/bin下
- 后面的jar文件是啟動(dòng)的jar包
停止jar項(xiàng)目
@echo off
set port=3061
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /pid %%m -t -f
goto q
)
:q
上述的方式是直接使用taskkill命令來(lái)關(guān)閉項(xiàng)目和linux中的kill一樣
重啟項(xiàng)目
@echo off
set port=3061
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /pid %%m -t -f
goto start
)
:start
START "app" javaw -jar app-0.0.1-SNAPSHOT.jar
重啟的方式就是將程序先關(guān)閉,然后重新啟動(dòng)。
Linux下關(guān)于啟動(dòng)服務(wù)器日志相關(guān)操作
java -jar xxx.jar
這種方式是在linux下的窗口啟動(dòng),關(guān)閉窗口就相當(dāng)于關(guān)閉了服務(wù)器。
服務(wù)器后臺(tái)啟動(dòng)
nohup java -jar xxx.jar &
這樣就會(huì)將程序運(yùn)行到了后臺(tái),但是沒(méi)有特指定日志輸出的位置和日志名字,因此日志默認(rèn)在當(dāng)前目錄的nohup.out下。
后臺(tái)啟動(dòng)且指定日志位置
日志輸出的方式需要知道如下:
- 1 標(biāo)準(zhǔn)輸出
- 2 錯(cuò)誤輸出
- /dev/null 沒(méi)有輸出
因此有如下兩種方式
nohup java -jar xxx.jar > /dev/null &
日志重定向到/dev/null中,這這個(gè)目錄是linux的空設(shè)備文件,寫(xiě)入這里的內(nèi)容會(huì)全部丟失掉。
因此沒(méi)有日志輸出
nohup java -jar xxx.jar > /dev/null 2>&1 &
標(biāo)準(zhǔn)日志無(wú)輸出,錯(cuò)誤日志重定向到/dev/null,因此錯(cuò)誤日志也沒(méi)有輸出
nohup java -jar xxx.jar > /dev/null 2>log.error &
錯(cuò)誤日志輸出到當(dāng)前目錄的log.error文件中
nohup java -jar xxx.jar > log.out 2>&1 &
標(biāo)準(zhǔn)日志和錯(cuò)誤日志都輸出到當(dāng)前的目錄的log.out文件中
每天都輸出一個(gè)文件
nohup java -jar xxx.jar | /usr/local/cronlog/sbin/cronlog logs/console-%Y-%m-%d.out &
上述的方式是使用cron每天定時(shí)的方式來(lái)產(chǎn)生一個(gè)日志文件。
總結(jié)
以上就是對(duì)windows啟動(dòng)項(xiàng)目相關(guān)的邏輯、以及對(duì)啟動(dòng)項(xiàng)目指定生成日志的方式。大家在后續(xù)可以使用這種方式來(lái)啟動(dòng)自己的打包后的項(xiàng)目。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試的配置方法
本文基于 CentOS 7 + Git + OpenSSL + yum 安裝的 RabbitMQ,需要讀者提交安裝好。其他方式也可變通參考本文。對(duì)RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試相關(guān)知識(shí)感興趣的朋友一起看看吧2022-01-01
java中實(shí)現(xiàn)一個(gè)定時(shí)任務(wù)的方式
本文介紹了三種在Java中實(shí)現(xiàn)定時(shí)任務(wù)的方法,并推薦使用Spring Boot注解方式,介紹了如何使用`@Scheduled`注解結(jié)合Cron表達(dá)式來(lái)設(shè)置定時(shí)任務(wù),并提供了一個(gè)示例配置文件2025-03-03
java實(shí)現(xiàn)多人多牌數(shù)比較游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多人多牌數(shù)比較游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
SpringBoot實(shí)現(xiàn)WebSocket全雙工通信的項(xiàng)目實(shí)踐
本文主要介紹了SpringBoot實(shí)現(xiàn)WebSocket全雙工通信的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05

