如何從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