我们如何从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