2010-08-04 137 views
1

我想用另一個jar文件或java類啓動和停止一個jar文件。 我可以使用這個命令來啓動jar文件:如何使用另一個jar文件啓動和停止jar文件?

Runtime run=Runtime.getRuntime(); 
Process process=run.exec("java -jar setvalue.jar"); 

的過程開始,做工精細。 但我沒有得到如何從其他java類/ jar文件關閉該過程。 我想運行setvalue.jar文件作爲後臺進程,並能夠啓動和停止使用其他java文件和jar文件。

有一個人有一個想法,我該怎麼辦呢?

回答

0

一個選項將會在你的setvalue.jar程序中創建一個運行在while(true)循環中的線程,該線程繼續在特定位置查找文件,並且只要此線程找到該文件,就會調用System.exit來終止當前的JVM 。當你想退出該程序時,只需使用另一個java程序「touch」在linux中創建該文件即可。

0

您可以從中創建它的類停止進程:

Runtime run=Runtime.getRuntime(); 
Process process=run.exec("java -jar setvalue.jar"); 

// Do stuff 

process.destroy(); 

我不認爲這是很容易(或推薦)嘗試使用Java來停止獨立的進程。但是,如果您使用的是基於UNIX的系統,則可以使用Runtime對象執行命令ps來查找您的進程,然後使用kill它。

+0

我知道這適用於Windows,但它也工作了Linux和馬? – DavidB 2014-06-01 18:35:43

1

如果你只是希望在後臺啓動你的第二個jar文件,你可以使用:

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