nohupjava-jar_Linux下运⾏jar包为什么要⽤nohup命令
在本地开发完的Java项⽬如果只是在本地运⾏是⾮常⽅便的,在IDE⾥执⾏运⾏在带有Main函数的Java⽂件⾥运⾏run就可以了。在服务器上运⾏Java项⽬就稍微⿇烦⼀些,但是也不复杂。这些都是在刚学习Java时候都必须会的东西,⽤了IDE后反⽽会让你忘记最开始接触Java 时候的⼀些知识点。
常⽤⽅式
本地写的demo程序打包成demo.jar,上传到Linux服务器后,执⾏jar包有如下⼏种⽅式。
第1种
java -jar demo.jar
说明:⽤这种⽅法启动后,不能继续执⾏其它命令了,如果想要继续执⾏其它命令,就都打断,打断⼀般⽤ctrl+c。
第2种
java -jar demo.jar &
第2种在第1种⽅式的基础上在命令的结尾增加了&,&表达的意思是在后台运⾏。
这种⽅式可以避免打断后程序停⽌的问题,但是避免不了关闭当前窗⼝后程序停⽌的问题。
第3种
nohup java -jar demo.jar &
第3种在第2种⽅式的基础上,在命令的最前⾯增加了nohup。nohub是什么?
nohup是不挂断运⾏命令,当账户退出或终端关闭时,程序仍然运⾏。
加了nohup后,即使关掉命令窗⼝,后台程序demo.jar也会⼀直执⾏。
第4种
nohup java -jar demo.jar & &
第4种在第3种的基础上,在后⾯增加了&,意思是将nohup java -jar demo.jar的输出重定向到1.txt⽂件中,即输出内容不打印到当前窗⼝上,⽽是输出到1.txt⽂件中。
第3种没有加&,它的输出重定向到nohup.out⽂件中,nohup.out也就是nohup命令的默认输出⽂件。
总结重定向过多是什么意思
通过⼏种⽅式的对⽐,能得出结论—执⾏jar⽂件⽤第4种⽅式最好,同时可以把它写成⼀个脚本,不⽤每次都写⼀遍。新建start.sh,根据我上传的demo.jar,输出到1.txt中,具体脚本如下:
nohup java -jar demo.jar & &
⼀句话:Linux下执⾏jar⽂件,⼀定要⽤nohup命令。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论