我們如何從Java啓動/停止Windows服務?例如,我想從Java啓動和停止mysql Windows服務。從java啓動windows服務
如果可以啓動/停止,那麼是否有可能知道服務是否成功啓動?
我們如何從Java啓動/停止Windows服務?例如,我想從Java啓動和停止mysql Windows服務。從java啓動windows服務
如果可以啓動/停止,那麼是否有可能知道服務是否成功啓動?
String[] script = {"cmd.exe", "/c", "sc", "query", APP_SERVICE_NAME, "|", "find", "/C", "\"RUNNING\""};//to check whether service is running or not
String[] script = {"cmd.exe", "/c", "sc", "start", SERVICE_NAME};//to start service
String[] script = {"cmd.exe", "/c", "sc", "stop", SERVICE_NAME};//to stop service
個
使用的Runtime.exec(字串[] args)
如果我嘗試啓動/停止沒有管理員權限的服務,它會提供拒絕訪問。 任何想法如何執行這與管理訪問在JAVA? – 2017-08-15 15:23:38
我知道的一種方式是管理員將權限授予用戶,嘗試更改服務。我不是Windows用戶,因此無法詳細解釋。 – pavan 2017-09-25 06:16:34
您可以通過Runtime#exec方法執行以下命令。
net start和淨停止(完整的信息,請訪問:http://technet.microsoft.com/en-us/library/cc736564%28WS.10%29.aspx)
也許你將不得不使用CMD/C網開始,因爲它會在shell中執行命令。
可以執行系統使用exec()命令從Java命令 - 在同一個簡單的教程可以在這裏找到 - http://www.java-samples.com/showtutorial.php?tutorialid=8
現在你可以使用系統命令來啓動/停止Windows服務 - 樣本同樣可以在這裏
發現我不是很肯定監控狀態,所以不能有很大幫助在這方面
'sc.exe'更精細那個'net.exe'並且可以幫助你獲得更多關於Windows服務的細節。參見'sc /?'它可以做什麼。但是,Windows的默認實用程序仍然需要管理員權限。 – ecle 2012-01-31 14:37:39
你如何處理海拔需求? – 2017-02-06 16:43:22
import java.io.*;
import java.util.*;
public class ServiceStartStop {
public static void main(String args[]) {
String[] command = {"cmd.exe", "/c", "net", "start", "Mobility Client"};
try {
Process process = new ProcessBuilder(command).start();
InputStream inputStream = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch(Exception ex) {
System.out.println("Exception : "+ex);
}
}
}
它工作得很好....而不是「sc」使用「net」命令。
請注意,由於Java 1.7,你可以調用'inheritIO' https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html#inheritIO()重定向到標準輸出從運行一個過程。 – 2016-06-14 07:22:16
在Windows中,您可以使用DOS命令解釋器中的sc.exe命令來啓動/停止/查詢服務名稱;例如:'sc \\ 10.8.0.1 query spserv'查詢IP地址爲10.8.0.1的PC上名爲「spserv」的服務的當前狀態。您可以在本地或遠程執行此操作。 – 2012-01-31 06:02:58
您也可以使用「net start/stop」來啓動服務。 –
Manish
2012-01-31 06:04:02
有關服務控制器(sc.exe)檢查[服務控制器](http://ss64.com/nt/sc.html)的更多信息。並檢查以下增強的答案。 – pavan 2012-02-07 05:26:44