java应用程序在linux上运行无法自动退出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java应用程序在linux上运行无法自动退出相关的知识,希望对你有一定的参考价值。
1.多线程的,windows下一切正常,部署在linux上后,程序到while的地方停止不动了
while是判断所有线程是否全部结束的地方 经过测试发觉只要在下面2个地方加入System.out.println(任意) 程序会输出内容最后会终止 否则就会停在那边一直停着了
while(true)
System.out.println(任意);
if(线程数==0)
break;
这个程序在windows下没任何问题啊,jre版本也一样,奇怪啊.
System.out.println(任意);
2.这个多线程是往文本里写内容,在windows下一切正常,在linux下写入时中文全部为乱码与null
写文件方法是
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename,true),"utf-8")),求帮忙.
3.这个程序是抓取网页的程序
将java程序注册成windows服务自启动并异常退出自动重启
文章目录
前言
linux下有docker方便部署java程序,在windows服务器下,大多人我觉得可能就是一个批处理启动,然后黑窗口运行,如果被哪个坑爹的不小心关闭了,就得把维护人员气死。
一、神器NSSM
windows下运行web服务最完美的情况就是注册成系统服务,让windows系统去管理启动和重启,这样非常方便。
在使用Grafana的过程中,发现它使用到一个nssm的程序启动的web服务,然后跟着研究了下,发现nssm绝对是个神器,然后在我的研究又完善了下,现在可以使用java程序的开机自启动,异常退出自动重启,使用windows系统服务的错误处理机制,保障能各种意外退出都能重启服务。
二、使用方法
首先去官网下载链接: 官网
官网有说明,可以参考说明写自己的脚本,也可以下载我写好的一套安装卸载,启动的脚本
一键操作脚本
将你的jar文件放到脚本解压后的目录,修改start.bat中jar文件名,如果像修改服务名称,在install和uninstall脚本中修改demoServer为你自己的服务名。然后双击install安装,然后如下图,已经正常启动了。
安装后自动设置异常恢复机制,自动重启服务
删除时运行uninstall,删除服务。
总结
还是linux服务器好用[手动滑稽]
以上是关于java应用程序在linux上运行无法自动退出的主要内容,如果未能解决你的问题,请参考以下文章
将java程序注册成windows服务自启动并异常退出自动重启