के दौरान जेवीएम निष्पादन योग्य स्थान का निर्धारण करना रनटाइम के दौरान वर्तमान में चल रहे JVM के निष्पादन योग्य स्थान को कैसे प्राप्त करता है? मैं ProcessBuilder क्लास का उपयोग कर एक सबप्रोसेस के रूप में एक और JVM को चालू करना चाहता हूं।रनटाइम
मुझे पता है कि java.home
सिस्टम प्रॉपर्टी है, लेकिन यह JVM निष्पादन योग्य स्थान निर्दिष्ट नहीं करता है। मैं समझता हूँ कि मैं पथ प्राप्त करने के लिए कुछ इस तरह कर सकता है:
System.getProperties().getProperty("java.home") + File.pathSeparator + "bin" + File.pathSeparator + "java"
इस कोड क्योंकि Windows निष्पादन के नाम java.exe
, नहीं java
है, मंच स्वतंत्र नहीं है। क्या JVM निष्पादन योग्य पथ का मार्ग प्राप्त करने का कोई तरीका है जो प्लेटफ़ॉर्म की idiosyncrasies को ध्यान में रखता है?
JAVA_HOME जेडीके को इंगित करता है और जेआरई नहीं। तो जब आप उपयोगकर्ता के पास जेडीके स्थापित नहीं है तो आप भाग्य से बाहर हैं। इसके अलावा * मैं * जेडीके करता हूं और पर्यावरण चर नहीं है। अभी भी सब कुछ ठीक काम करता है। विंडोज़ पर भी आप उन प्रोग्रामों के लिए '.exe' फ़ाइल नाम पर छोड़ सकते हैं जिन्हें आप चलाना चाहते हैं। – Joey
'java.home' सिस्टम प्रॉपर्टी द्वारा, मैं पर्यावरण चर का जिक्र नहीं कर रहा हूं; बल्कि, मेरा मतलब है कि 'System.getProperties() 'में मौजूद संपत्ति। मैंने सत्यापित किया है कि जेआरई में 'java.home' की सिस्टम प्रॉपर्टी है। यह जानना उपयोगी है कि'exe' एक्सटेंशन विंडोज में वैकल्पिक है। धन्यवाद। –
आप पहली टिप्पणी कह सकते हैं और विंडोज़ पर "bin/java.exe" मान सकते हैं और अन्य प्लेटफार्मों पर "बिन/जावा" मान सकते हैं। आप जो करने की कोशिश कर रहे हैं उसके आधार पर विचार करने के लिए "javaw.exe" भी है। –