解决java -jar启动项目以及日志输出相关问题

windows下启动、停止、重启jar项目

后台启动

@echo off
START "app" javaw -jar app-0.0.1-SNAPSHOT.jar
  • 其中的app是你这个bat文件的名字
  • javaw是jre中的后台启动的文件在jre/bin下
  • 后面的jar文件是启动的jar包

停止jar项目

@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命令来关闭项目和linux中的kill一样

重启项目

@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

重启的方式就是将程序先关闭,然后重新启动。

Linux下关于启动服务器日志相关操作

java -jar xxx.jar

这种方式是在linux下的窗口启动,关闭窗口就相当于关闭了服务器。

服务器后台启动

nohup java -jar xxx.jar &

这样就会将程序运行到了后台,但是没有特指定日志输出的位置和日志名字,因此日志默认在当前目录的nohup.out下。

后台启动且指定日志位置

日志输出的方式需要知道如下:

  • 1 标准输出
  • 2 错误输出
  • /dev/null 没有输出

因此有如下两种方式

nohup java -jar xxx.jar > /dev/null &

日志重定向到/dev/null中,这这个目录是linux的空设备文件,写入这里的内容会全部丢失掉。因此没有日志输出

nohup java -jar xxx.jar > /dev/null 2>&1 &

标准日志无输出,错误日志重定向到/dev/null,因此错误日志也没有输出

nohup java -jar xxx.jar > /dev/null 2>log.error &

错误日志输出到当前目录的log.error文件中

nohup java -jar xxx.jar > log.out 2>&1 &

标准日志和错误日志都输出到当前的目录的log.out文件中

每天都输出一个文件

nohup java -jar xxx.jar | /usr/local/cronlog/sbin/cronlog logs/console-%Y-%m-%d.out &

上述的方式是使用cron每天定时的方式来产生一个日志文件。

总结

以上就是对windows启动项目相关的逻辑、以及对启动项目指定生成日志的方式。大家在后续可以使用这种方式来启动自己的打包后的项目。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值