मैं स्टार्ट अप रजिस्ट्री कुंजी बनाने के लिए जावा का उपयोग करने की कोशिश कर रहा हूं और मुझे वास्तव में अजीब परिणाम मिल रहा है। कुछ ओएस जैसे एक्सपी पर कमांड काम करता है। हालांकि, विंडोज 7 पर यह केवल कुंजी बनाता है यदि आप संकलित जार या कक्षाएं चलाते हैं, न कि किसी वेब पेज पर एप्लेट से। इसके अतिरिक्त विंडोज 8 पर, कमांड बिल्कुल काम नहीं करता है। मैंने इसे डीबग करने का प्रयास किया है, और ऐसा लगता है कि आरईजी कमांड सफलतापूर्वक निष्पादित कर रहा है। यदि मैं कमांड प्रॉम्प्ट से मैन्युअल रूप से कमांड चलाता हूं, तो यह उसी आउटपुट के साथ कुंजी बनाता है जब यह प्रोग्राम के अंदर से चलाया जाता है। यहाँ कोड का एक उदाहरण:जावा आरईजी कमांड जावा में प्रोसेसबिल्डर से निष्पादित होने पर काम नहीं कर रहा है
public static int regadd(String key, String name, String val) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder(new String[]{"REG", "ADD", key, "/v", name, "/d", val, "/f"});
pb.redirectOutput(new File(PathManager.getDirectory(), "log0.txt"));
int i = pb.start().waitFor();
Logger.log("ADD: " + i);
return i;
}
log0.txt में यह इस प्रिंट:
आपरेशन सफलतापूर्वक पूर्ण हुआ।
इसके अतिरिक्त, कार्यक्रम प्रिंट
की "परिणाम"जोड़ें: 0
तो इस बिंदु पर, मैं क्या समस्या हो सकती है की एक नुकसान में हूँ। मैं रजिस्ट्री में जोड़ने के अन्य पागल तरीकों से अवगत हूं, लेकिन मैं अपने कोड को सभी वीएम वितरणों के साथ संगत रखना चाहता हूं। क्या इसे पूरा करने या बाहर निकलने की विधि को ठीक करने का कोई तरीका है?
दो चीजें बाहर निकलती हैं, 1- * "और एक वेब पेज पर एक एप्लेट से नहीं *" एप्लेट एक सुरक्षा रेत बॉक्स के भीतर चलाते हैं, जिसका मतलब है कि क्लाइंट मशीन तक पहुंचने की बात आती है, जैसे वे चलने की तरह बहुत सीमित कार्यक्षमता रखते हैं उदाहरण के लिए प्रक्रियाएं, इसलिए जब तक एप्लेट पर हस्ताक्षर नहीं किया जाता है और उचित सुरक्षा अनुमतियां होती हैं, तो यह असफल हो जाएगी। 2- विंडोज 7+ के पास एक अलग सुरक्षा मॉडल है तो एक्सपी। ऐसा हो सकता है कि विंडोज सुरक्षा प्रबंधक ने कदम उठाया है और कार्रवाई को रोकने से रोक दिया है, और इतनी चुपचाप किया है। इसके लिए कुछ अच्छे कारण हैं, लेकिन मैं कमरे से बाहर निकल रहा हूं। – MadProgrammer
आप "व्यवस्थापक" के रूप में ब्राउज़र को चलाने का प्रयास कर सकते हैं, लेकिन मुझे यकीन नहीं है कि इससे जावा प्लगइन कैसे चलाया जा सकता है ... – MadProgrammer
[रजिस्ट्री वर्चुअलाइजेशन (विंडोज) - एमएसडीएन - माइक्रोसॉफ्ट] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa965884(v=vs.85).aspx) – Holger