jar包的几种启动方式

举报
负债程序猿 发表于 2022/02/18 23:28:10 2022/02/18
【摘要】 方式一 java -jar demo.jar 1 最基本的一种,启动后只要ctrl+c终止,服务就停了,这种基本不用 方式二 java -jar demo.jar & 1 方式一的升级版...

方式一

java -jar demo.jar

  
 
  • 1

最基本的一种,启动后只要ctrl+c终止,服务就停了,这种基本不用

方式二

java -jar demo.jar &

  
 
  • 1

方式一的升级版,&表示后台运行,区别在于这种方式启动的服务允许你ctrl+c,服务会在后台继续运行,但是这种是伪后台,当你关闭xshell窗口或者断开ssh连接后,服务立即停止

方式三

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

  
 
  • 1

这种才是我们最常用的启动方式,即使你关闭ssh连接,服务也会继续运行,只有kill命令才能停止服务

关于>/dev/null 2>&1:
/dev/null表示丢弃信息,2>&1表示将标准错误输出重定向到标准输出,而标准输出又是不输出,所以加起来可以简单理解成不显示任何信息,应用后台运行即可

指定端口启动

java -jar demo.jar --server.port=8888

  
 
  • 1

指定堆内存

初始内存:-Xms
最大内存:-Xmx

java -Xms128M -Xmx128M -jar demo.jar

  
 
  • 1

开启自动生成dump文件

我们是不知道系统啥时候OOM的,你不可能时刻盯着,所以一般需要在发生OOM时自动生成dump文件,方便后期排查线上问题
XX:HeapDumpPath 指定你的dump文件保存路径和文件名

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -jar demo.jar

  
 
  • 1

(有一点,jvm在dump时,会停掉其它工作,所以如果你是线上,dump其实也算是个危险操作,还有,如果你的HeapDumpPath路径不存哎,是不会生成的,它不会帮你生成目录)

踩坑记录:
即使开启了oom时自动dump,在机器堆外内存不足的情况下,也可能不会自动dump,而且会把服务down掉,具体多少内存才够支撑dump还研究过 0.0

文章来源: huangjie.blog.csdn.net,作者:负债程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:huangjie.blog.csdn.net/article/details/115126860

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。