जावा प्रोग्राम से विंडोज सेवाओं की स्थिति की जांच कैसे करें?जावा एप्लिकेशन से विंडोज सेवा की स्थिति पाएं?
उत्तर
कम से कम आप sc query service-name
कमांड के साथ cmd.exe प्रक्रिया लॉन्च करने और स्थिति निर्धारित करने के लिए आउटपुट को पार्स करने में सक्षम होना चाहिए। सुंदर नहीं है, लेकिन विंडोज सेवा प्रबंधक के लिए जावा एपीआई की कमी यह एक व्यवहार्य विकल्प होगा।
संपादित करें - java.lang.ProcessBuilder के लिए जावाडोक पढ़ें, जो आपको बाहरी कमांड निष्पादित करने की अनुमति देगा। आपको शायद रीडायरेक्ट एररस्ट्रीम प्रॉपर्टी सेट करना चाहिए ताकि आपको दो इनपुट स्ट्रीम (stdout और stderr) को संभालने की आवश्यकता न हो, जो एक बहुत ही सरल डिज़ाइन के लिए बनाते हैं।
मैंने इस एससी क्वेरी को गुगल किया है, और यह ठीक काम करता है। क्या आप कृपया मुझे बताएं कि मैं जावा से यह क्वेरी कैसे चला सकता हूं? –
मैंने एपीआई में एक पॉइंटर शामिल करने के लिए अपना उत्तर संपादित किया है, आपको इसे करने की आवश्यकता होगी। –
आप कैसे आप 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
उपरोक्त कोड कुछ भी नहीं देता है। डीबग होने पर, यह कहता है कि पहुंच अस्वीकार और शून्य है। –
- 1. मोबाइल सफारी में "व्यूपोर्ट" की स्थिति पाएं?
- 2. जावा स्विंग एप्लिकेशन से विंडोज एक्सप्लोरर
- 3. जावा एप्लिकेशन को विंडोज 8
- 4. कारकों की संख्या पाएं
- 5. एक स्टैंडअलोन डेल्फी एप्लिकेशन जिसे विंडोज सेवा
- 6. किसी सूची के भीतर किसी तत्व की स्थिति पाएं
- 7. विंडोज सेवा
- 8. विंडोज सेवा
- 9. सेवा नियंत्रक स्थिति वास्तविक सेवा स्थिति
- 10. विंडोज सेवा
- 11. ओएसजीआई परिनियोजन व्यवस्थापक सेवा की स्थिति
- 12. विंडोज सेवा
- 13. विंडोज सेवा
- 14. ब्लैकबेरी एप्लिकेशन में वाईफाई की स्थिति की जांच करें
- 15. विंडोज सेवा
- 16. छवियों से वाहन की गति पाएं
- 17. विंडोज सेवा में होस्ट की गई डब्ल्यूसीएफ सेवा कंसोल ऐप
- 18. विंडोज सेवा अप्रत्याशित रूप से
- 19. स्थिति: विंडोज फोन 7
- 20. विंडोज सेवा से एक्सपीएस प्रिंटिंग
- 21. जावा स्विंग एप्लिकेशन में सेवा परत
- 22. विंडोज सेवा
- 23. विंडोज सेवा
- 24. सेवा विंडोज
- 25. विंडोज सेवा
- 26. विंडोज सेवा
- 27. विंडोज सेवा से डब्ल्यूसीएफ आरआईए सेवा का उपयोग कैसे करें?
- 28. विंडोज सेवा
- 29. विंडोज सेवा
- 30. विंडोज सेवा
संभव डुप्लिकेट वहाँ की स्थिति जानने के लिए कोई तरीका है, जावा में, एक विंडोज़ सेवा?] (http://stackoverflow.com/questions/127299/is-there-any-way-in-java-to-check-on-the-status-of-a- विन्डोज़- सेवा) –
@ पीटर टोरोक: यह प्रश्न का एक संभावित डुप्लिकेट हो सकता है, लेकिन उस प्रश्न के उत्तर में से कोई भी अपेक्षाकृत सरल प्रोसेस बिल्डर-आधारित उत्तर पर मैंने स्पर्श नहीं किया है। –