هل هناك أي طريقة، في جافا، للتحقق من حالة خدمة ويندوز؟[مغلق]

StackOverflow https://stackoverflow.com/questions/127299

سؤال

أنا أبحث عن مكتبة تسمح لي بالبحث عن حالة خدمة Windows للتحقق من بدء تشغيل الخدمة وتشغيلها.لقد بحثت في مكتبة Sigar، لكنها تابعة لـ GPL ولذلك لا أستطيع استخدامها.مطلوب ترخيص تجاري أو BSD(ish) لأنه سيتم تجميعه في البرامج التجارية.

هل كانت مفيدة؟

المحلول

إذا لم يكن هناك أي شيء آخر يساعدك، فحاول التفكير في نهج مختلف قليلاً (إذا استطعت بالطبع)، على سبيل المثال:

  • هناك الكثير من البرامج المجانية/غير المجانية التي تقوم بالمراقبة، بما في ذلك مراقبة خدمة Windows (على سبيل المثال.ناجيوس، زابيكس، الخ.).تحتوي هذه الشاشات عادةً على واجهة برمجة تطبيقات مفتوحة حيث يمكن دمج تطبيق Java الخاص بك بعدة طرق مختلفة.
  • إذا كان لديك التحكم في تطبيق الخدمة المعتمد، فاكشف عن طريقة أخرى مختلفة لتطبيق Java الخاص بك للتحقق (على سبيل المثال.تشغيل مستمع وهمي على منفذ، أو إنشاء ملف، وما إلى ذلك).خدمات Windows ليست شيئًا مشتركًا بين الأنظمة الأساسية، وبالتالي فهي ليست شيئًا تتوقع دعمه في أي وقت قريب.

نصائح أخرى

لا أعتقد أن هناك أي طريقة Java خالصة للقيام بذلك لأن بعض أنظمة التشغيل لا تملك مفهوم "الخدمات" مثل Windows.في مشاريعنا، قمنا بكتابة غلاف حول استدعاءات الأمر "sc" من سطر الأوامر.للحصول على حالة الخدمة، يمكنك القيام بما يلي:

sc \\استعلام بعض أجهزة الكمبيوتر "اسم الخدمة الخاص بي"

سيتعين عليك تحليل الإخراج يدويًا ولكنه بسيط جدًا.

لا أعرف أي مكتبات، ولكن اعتمادًا على مدى التفاصيل التي تحتاجها للحصول على بعض أوامر shell وتحليل الإخراج.

صافي البداية اسم الخدمة

إما أن يبدأ الخدمة، أو سيعطيك رسالة خطأ تخبرك أنها قد بدأت بالفعل.لا أعرف أي أمر من شأنه أن يمنحك الحالة فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top