如何从java程序中检查windows服务的状态?从Java应用程序中查找Windows服务的状态?
回答
至少您应该能够使用命令sc query service-name
启动cmd.exe进程并解析输出以确定状态。不太好,但缺少Windows服务管理器的Java API,这将是一个可行的选择。
编辑 - 阅读Javadoc的java.lang.ProcessBuilder,这将允许您执行外部命令。您应该设置redirectErrorStream属性,以便您不必处理两个输入流(stdout和stderr),从而实现更简单的设计。
我已经使用了这个sc查询,它的工作很好。你可以告诉我,我怎么能从java运行这个查询? – 2011-03-24 07:07:29
我编辑了我的答案,包含一个指向您需要执行此操作的API的指针。 – 2011-03-25 01:14:04
在下面的例子中,你可以找到你怎么能检查WINDWS服务状态,你可以解析做某些动作
import java.util.*;
import java.sql.*;
import java.io.*;
import java.text.*;
public class doscmd
{
public static void main(String args[])
{
try
{
Process p=Runtime.getRuntime().exec("sc query browser");
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
if(line.trim().startsWith("STATE"))
{
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("1"))
System.out.println("Stopped");
else
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("2"))
System.out.println("Startting....");
else
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("3"))
System.out.println("Stopping....");
else
if (line.trim().substring(line.trim().indexOf(":")+1,line.trim().indexOf(":")+4).trim().equals("4"))
System.out.println("Running");
}
line=reader.readLine();
}
}
catch(IOException e1) { }
}
}
的[
伟大的答案waleed .. – bluelurker 2015-04-05 20:15:25
上面的代码不会返回任何内容。调试时,它表示访问被拒绝并为空。 – 2016-03-08 09:32:33
- 1. 在Web应用程序的C#中查询Windows服务状态
- 2. 从Windows服务定期查询状态
- 3. 在Java应用程序中查找MySQL状态统计信息
- 4. 使用PowerShell检查Windows服务状态
- 5. 查找运行服务实例的BizTalk应用程序的不同状态
- 6. Rails应用程序来检查服务器的状态
- 7. Windows服务状态
- 8. 在java中,有没有办法检查Windows服务的状态?
- 9. 从C++ windows服务应用程序中使用web服务
- 10. 从Windows服务启动应用程序
- 11. 无法从Windows服务应用程序
- 12. 在应用程序服务器之间同步服务状态
- 13. 如何检查windows mobile中的应用程序状态?
- 14. 从C#应用程序检查多台机器上的服务器状态
- 15. Windows服务中的Web应用程序
- 16. c中的Windows服务应用程序#
- 17. C#检查Windows服务状态
- 18. NSIS检查Windows服务状态
- 19. 基于Java服务器的Web应用程序中的HTTP状态代码
- 20. 从Windows服务触发应用程序找不到文件?
- 21. 如何在websphere中查找应用程序的状态
- 22. 如何检查在Windows服务器上运行的Java应用程序状态(运行或停止)
- 23. (Windows phone 10)Handle应用程序状态
- 24. 如何从Java中检查SMTP服务器的状态?
- 25. Windows服务状态“开始”
- 26. Windows服务状态C++?
- 27. 检查Windows窗体应用程序的状态?
- 28. 获取Windows服务的禁用状态
- 29. 如何找到程序集用于Windows应用程序或Windows服务
- 30. 作为使用C#的Windows服务的Java应用程序
可能重复有什么办法,在Java中,以检查状态一个Windows服务?](http://stackoverflow.com/questions/127299/is-there-any-way-in-java-to-check-on-the-status-of-a-windows-service) – 2011-03-22 09:11:15
@ PéterTörök:这可能是一个可能的问题,但这个问题的答案没有涉及我提供的相对简单的基于ProcessBuilder的答案。 – 2011-03-25 01:15:56