如何使用另一个jar文件启动和停止一个jar文件?

3
我希望使用另一个jar文件或Java类启动和停止一个jar文件。 我能够使用以下命令启动jar文件:
Runtime run=Runtime.getRuntime();
Process process=run.exec("java -jar setvalue.jar");

这个进程已经启动并运行良好。 但我不知道如何从其他Java类/ jar文件中关闭该进程。 我想将setvalue.jar文件作为后台进程运行。并且可以使用其他Java文件和jar文件启动和停止它。

有人有思路吗?

3个回答

2
您可以从创建进程的类中停止该进程:
Runtime run=Runtime.getRuntime();
Process process=run.exec("java -jar setvalue.jar");

// Do stuff

process.destroy();

我认为使用Java尝试停止独立进程不易(也不推荐)。但是,如果您正在使用基于UNIX的系统,则可以使用Runtime对象执行ps命令来查找您的进程,然后使用kill命令终止它。


我知道这个适用于Windows,但它是否也适用于Linux和Mac? - DaveTheMinion

2

您可以在setvalue.jar程序中创建一个线程,该线程运行在while(true)循环中,不断查找某个位置的文件,每当该线程发现该文件时,它将调用System.exit来终止当前JVM。当您想要退出该程序时,只需使用另一个Java程序创建该文件或在Linux中使用"touch"命令创建即可。


2

如果您只是想在后台启动第二个JAR文件,可以使用以下命令:

Process process=run.exec("nohup java -jar setvalue.jar &")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接