2011-10-20 19 views
6

मैं एक जावा अनुप्रयोग है, मैं (JavaCompiler इंटरफ़ेस का उपयोग करना)जावा: वर्तमान जावा रनटाइम का पता लगाने के लिए एक जेआरई या जेडीके है?

उपयोगकर्ता एक JRE पर आवेदन चलाते हैं जावा स्रोत कोड को संकलित करने के उपयोगकर्ता की क्षमता प्रदान करना चाहते हैं, अपने आवेदन उपयोगकर्ता है कि कोई JavaCompiler उदाहरण aviable बताना चाहिए।

तो जावा कार्यक्रम में जेडीके या जेआरई का पता लगाने के लिए कैसे?

उत्तर

11

आप से JavaCompiler के कार्यान्वयन का अनुरोध कर सकते हैं। है हमेशा उपलब्ध यह `JavaCompiler` इंटरफेस की तरह लगता है, लेकिन बनाम JRE JDK का गौरव प्राप्त निर्भर करता है -

JavaCompiler c = ToolProvider.getSystemJavaCompiler(); 
if (c == null) { 
    // JRE 
} 
+0

मुझे यकीन है कि अगर काम करता है नहीं कर रहा हूँ: यह देता है, तो null, वहाँ उपलब्ध JavaCompiler का कोई कार्यान्वयन है एक कार्यान्वयन पर। –

+0

@ डेविड: अपडेटेड। – axtavt

+0

जब जेडीके ठीक से स्थापित होता है तो यह बहुत अच्छा काम करता है, और क्लासपाथ पर 'जावैक' पाया जा सकता है। लेकिन क्या होगा यदि मैं किसी उपयोगकर्ता को इसे चलाने की अनुमति देना चाहता हूं, भले ही 'जावैक' तक नहीं पहुंचा जा सके? मैं बस इतना जानना चाहता हूं कि मैं जेडीके या जेआरई पर चल रहा हूं ... [यह लिंक] देखें (http://www.java.net/node/688208) - यदि उपयोगकर्ता पर्यावरण चर को परिभाषित करता है तो इसे हल किया जा सकता है । लेकिन चूंकि मुझे 'जावैक' की आवश्यकता नहीं है, इसलिए मैं इस अतिरिक्त कॉन्फ़िगरेशन ओवरहेड के साथ उपयोगकर्ता को परेशान नहीं करना चाहता ... –

संबंधित मुद्दे