2013-03-27 272 views
2

我正在寫一個更新程序,它要求停止運行tomcat。我試着用java調用net stop SERVICENAME但它不起作用。它返回錯誤代碼2並中止,我猜這是出於安全原因。有人知道我能如何解決這個問題嗎?我可以定義java程序以管理員身份運行,因此具有必要權限,或者有其他方法嗎?如何用java程序停止正在運行的tomcat?

這裏是我的代碼:

String command = "cmd.exe /C net stop myservice"; 
Process p; 
p = Runtime.getRuntime().exec(command); 
p.waitFor(); 
log.info("exit value was " +p.exitValue()); 
+0

使用命令的startup.bat – Pragnani 2013-03-27 22:28:18

+0

我與shutown.bat嘗試過,但我偷以下錯誤:[27 MRZ 23:33:51:626 ] [INFO] [CATALINA_HOME環境變量未正確定義] [27 Mrz 23:33:56:236] [INFO] [此環境變量需要運行此程序 – 2013-03-27 22:37:12

+0

檢查我的答案 – Pragnani 2013-03-27 22:42:50

回答

0

使用SC(服務控制)命令,它給你更多的選擇比剛開始&停止。 你甚至可以在遠程機器上啓動/停止服務。

USAGE: SC服務器[命令] [服務名稱]

+0

我試過調用sc停止我的服務,但它結果代碼5和服務器沒有停止 – 2013-03-27 22:41:53

+0

對不起,我忘了。我已經更新了答案。 – joan 2013-03-27 22:44:46

相關問題