文章目录
- 本地操作
- 服务器操作
- 启动jar包命令
- 总结
本地操作
-
禁掉test
如果不禁掉test,直接clean和package后,会报一个含有test的错误信息
-
打好的包在项目目录下的target文件夹下
服务器操作
一、创建一个文件夹,用来存放jar包
例如在根目录下,mkdir jar
二、将jar包存放到该目录下
三、运行jar包
nohup java -jar xxx(jar包名称) >> ./info.log &
四、停止运行jar包
- 启动命令不包含nohup和&
使用exit或者ctrl+c会关闭。
直接关闭命令窗口也会关闭 - 启动命令包含&、nohup中的一个
关闭终端就可以了
- 启动命令包含nohup和 &
需要先获取到pid:ps -ef
然后杀进程:kill pid号
启动jar包命令
这里我们假设我们的jar包名称为 demo.jar
一、java -jar demo.jar
- 弊端
1、exit退出终端会导致java进程终端
2、ctrl+c退出启动展示页会导致java进程中断
3、直接关闭终端会导致java进程终端(启动时和启动完关闭都会导致java进程中断)
4、控制台日志不打印
所以,该命令是不能直接使用的
二、java -jar demo.jar &
- 注释
1、&的作用是让程序可以以后台模式运行,这样使用exit或者ctrl+c的时候程序不会被终止
2、关闭终端会导致程序退出
3、无论是程序启动时直接关闭终端还是程序启动完成,都会导致程序异常终止 - 弊端
1、直接关闭终端会导致java进程中断(启动时和启动完关闭都会导致java进程中断)
2、控制台日志不打印
三、nohup java -jar demo.jar
- 注释
1、相当于第一个场景增加了nohup命令
2、nohup是为了指定输出文件的,在这里是为了指定java的输出了
3、nohup默认将文件打印在当前文件夹下的nohup.out文件中。如果权限不足,会输出到 $HOME/nohup.out - 弊端
1、exit退出终端会导致java进程终端
2、ctrl+c退出启动展示页会导致java进程中断
3、直接关闭终端会导致java进程终端(启动时和启动完关闭都会导致java进程中断)
同场景一,该命令一般不实用
四、nohup java -jar demo.jar &
- 注释
1、场景三增加了&,作用类比场景二
2、使用这个命令关闭终端(无论是启动时还是启动完毕)都不会终止程序
3、关闭终端其实关闭的是nohup的命令层级 - 弊端
日志定向输出当前文件夹下的nohup.out(硬凑出来的弊端)
五、nohup java -jar demo.jar > ./info.log &
- 该命令没有弊端。
与场景四的区别,是将日志打印到当前目录下的info.log中
日志打印方式是覆盖,即每次启动,都会将之前的日志覆盖
六、nohup java -jar demo.jar >> ./info.log &
- 这是常用的命令
- 注释
与场景五的区别就是,日志打印是拼接形式的。
即每次启动,都会将本次日志拼接到原日志之后进行输出。
( 日志是控制台日志,一般没必要拼接 )
七、nohup java -jar demo.jar >> dev/null &
- 注释
将日志输出到/dev/null中
dev/null是linux系统的黑洞,可以理解为垃圾桶,相当于把日志扔了不要
总结
- 打印控制台日志,无需保留之前的日志信息
nohup java -jar demo.jar > ./info.log &
- 打印控制台日志,保留之前的日志信息
nohup java -jar demo.jar >> ./info.log &
- 不需要打印控制台日志
nohup java -jar demo.jar >> dev/null &