我们在重新启动关闭正在运行的* .JAR文件started with the "java -cp"
时遇到问题。
杀死java.exe工作正常。
但......应用程序没有更平滑的方式吗? (它在关闭时保存数据)
此外,如何使用批处理文件模拟以下消息"Enter any key to continue..."
中的任何键输入?
感谢您的帮助!
答案 0 :(得分:9)
以下一组批处理脚本可用于启动/停止jar /任何程序
启动jar.bat
start "win_title" java -jar [jar file] [jar options]
这基本上在标题设置为“win_title”的窗口中启动你的jar(程序)。
您可以使用另一批来杀死已启动的窗口
停止jar.bat
TASKKILL /FI "WINDOWTITLE eq win_title
答案 1 :(得分:0)
使用PAUSE [信息]等待按键:
PAUSE Hit any key to continue..
至于杀死你的应用程序,有JMX方法可以做到这一点 - 但我找到一种简单的方法让套接字监听本地端口,然后你可以轻松地向它发送一个kill commnad并让你的程序处理关闭
答案 2 :(得分:0)
优秀的Java Service Wrapper将让您毫不费力地为Java应用程序安装信号处理程序。
答案 3 :(得分:0)
让您的应用在启动时创建临时文件,并定期检查它是否仍然存在。您的批处理脚本只能删除该文件以终止该应用程序。
答案 4 :(得分:0)
如果您需要在关闭流程之前进行一些清理,请查看Shutdown Hooks。
来自Q& A链接的:
好的,但是我不会为了注册一个简单的关机钩而编写很多代码吗?
没有。简单的关闭挂钩通常可以写为匿名内部类,如下例所示:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { database.close(); }
});