मुझे यह नहीं पता कि यह आपके लिए क्यों काम नहीं कर रहा है, क्योंकि आप जावा से बाहरी कार्यक्रम निष्पादित कर रहे हैं, मुझे लगता है कि यह जावा की गलती नहीं है कि यह पुनरारंभ नहीं हो रहा है, शायद रास्ते में कुछ गड़बड़ है आप पुनरारंभ करें
इसके बजाय
Runtime.exec()
का उपयोग करने का
, प्रक्रिया शुरू करने के लिए कोशिश करते हैं और ProcessBuilder.start()
प्रक्रिया को मारने के लिए वर्ग Process
से विधि destroy()
का उपयोग करें: मैं तुम्हें एक विकल्प दे देंगे। यह ठीक काम करना चाहिए, केवल ऑब्जेक्ट बनाने के लिए बिल्डर का उपयोग करें जो एक्सप्लोरर का प्रतिनिधित्व करता है और इसे Process
प्रकार के चर के लिए असाइन करें।
एकमात्र कारण मुझे लगता है कि यदि आप प्रोसेसबिल्डर का उपयोग करते हैं तो यह आसान है क्योंकि यह अलग स्ट्रिंग्स के रूप में तर्क लेता है, और हो सकता है कि यह आपकी स्क्रिप्ट को कॉन्फ़िगर करना आसान बनाता है।
उदाहरण:
List<String> params = java.util.Arrays.asList("C:\myProgram.exe", "-arg1", "-arg2");
ProcessBuilder pb = new ProcessBuilder(params);
Process process = pb.start();
यह एक कोशिश मुझे लगता है कि यह काम करना चाहिए दे।
हत्याक खोजकर्ता बेहद परेशान है। तुम ऐसा क्यों करना चाहते हो। – SLaks
क्योंकि मैं एक लॉगिन करना चाहता हूं जो उपयोगकर्ता द्वारा अनदेखा करना असंभव है। यदि एक्सप्लोरर चल रहा है तो कीबोर्ड पर विंडोज बटन का उपयोग करना आसान है। – tb96
किलिंग एक्सप्लोरर ऐसा करने का गलत तरीका है। वास्तव में काम करने के तरीके हैं, लेकिन आप वास्तव में उन्हें जावा में नहीं कर सकते हैं। – SLaks