Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用批处理脚本停止正在运行的*.JAR文件?_Java_Batch File_Jar - Fatal编程技术网

Java 如何使用批处理脚本停止正在运行的*.JAR文件?

Java 如何使用批处理脚本停止正在运行的*.JAR文件?,java,batch-file,jar,Java,Batch File,Jar,重新关闭以“java-cp”启动的正在运行的*.JAR文件时遇到问题 杀死java.exe效果很好 但是。。。应用程序没有更流畅的方式吗?(它在关机时保存数据) 此外,如何使用批处理文件模拟以下消息中的任何键输入?“输入任何键以继续…” 谢谢你的帮助 使用暂停[消息]等待按键: PAUSE Hit any key to continue.. 至于杀死你的应用程序,JMX有很多方法可以做到这一点,但我找到了一种简单的方法,让套接字监听本地端口,然后您可以轻松地向其发送kill命令,并让您的程序处

重新关闭以“java-cp”启动的正在运行的*.JAR文件
时遇到问题

杀死java.exe效果很好

但是。。。应用程序没有更流畅的方式吗?(它在关机时保存数据)

此外,如何使用批处理文件模拟以下消息中的任何键输入?
“输入任何键以继续…”


谢谢你的帮助

使用暂停[消息]等待按键:

PAUSE Hit any key to continue..

至于杀死你的应用程序,JMX有很多方法可以做到这一点,但我找到了一种简单的方法,让套接字监听本地端口,然后您可以轻松地向其发送kill命令,并让您的程序处理关闭。

优秀的将让您轻松地为Java应用安装信号处理程序。

以下批处理脚本集可用于启动/停止jars/任何程序

start-jar.bat

start "win_title" java -jar [jar file] [jar options]
这基本上是在一个标题设置为“win_title”的窗口中启动jar(程序)

您可以使用另一批来终止启动的窗口

蝙蝠

TASKKILL /FI "WINDOWTITLE eq win_title

让你的应用程序在启动时创建一个临时文件,并定期检查它是否仍然存在。您的批处理脚本只需删除该文件即可终止应用程序。

如果您需要在进程关闭前进行一些清理,请查看

从链接中的问答:

好的,但是我不需要写很多代码来注册一个简单的关机钩子吗?

不可以。简单的关闭挂钩通常可以作为匿名内部类编写,如下例所示:


哦,我知道用暂停按钮,但我如何使应用程序以编程方式(在批处理中)通过该事件?一旦它等待按键,它就会一直等待-我认为你对简单的批处理文件要求有点太高了。TASKKILL/FI“WINDOWTITLE eq win_title”最后一句话不见了
Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() { database.close(); }
});