[英]start windows service from java
我們如何從Java啟動/停止Windows服務? 例如,我想從Java啟動和停止mysql Windows服務。
如果可以啟動/停止,那么是否可以知道服務是否成功啟動?
您可以使用字符串數組來制定命令提示符腳本以啟動,停止和檢查服務的狀態:
// start service
String[] script = {"cmd.exe", "/c", "sc", "start", SERVICE_NAME};
// stop service
String[] script = {"cmd.exe", "/c", "sc", "stop", SERVICE_NAME};
// check whether service is running or not
String[] script = {"cmd.exe", "/c", "sc", "query", APP_SERVICE_NAME, "|", "find", "/C", "\"RUNNING\""};
使用以下命令執行腳本:
Process process = Runtime.getRuntime().exec(script);
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”命令。
您可以使用exec()命令從java執行系統命令 - 可以在此處找到相同的簡單教程 - http://www.java-samples.com/showtutorial.php?tutorialid=8
現在您可以使用系統命令來啟動/停止Windows服務 - 可以在此處找到相同的示例
我不太確定監控狀態,所以在這方面沒有多大幫助
您可以通過Runtime #exec方法執行以下命令。
凈啟動和凈停止(完整信息請訪問: http : //technet.microsoft.com/en-us/library/cc736564%28WS.10%29.aspx )
可能你必須使用cmd / c net start,因為它會在shell下執行命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.