2010-10-12 12 views
5

This प्रश्न मुझे सोचने लगा, एक सन जेडीके उपलब्ध है, मैं और कुछ क्यों उपयोग करूंगा? क्या एक अलग संकलक का उपयोग करने के लिए कोई अच्छा तकनीकी कारण है?गैर-सूर्य जेआरई/जेडीके का उपयोग करने के लिए प्रेरणा क्या है?

+1

यह विश्वास नहीं है कि यह प्रश्न यहां है, लेकिन प्री-1.4 के अंधेरे दिनों में, आईबीएम जेडीके वास्तव में सूर्य की तुलना में बहुत तेज था। और जैक्स कंपाइलर शासन किया। –

+0

लाइसेंसिंग/वितरण समझौते विभिन्न विक्रेताओं से अलग हैं ... – chrismh

+0

सामुदायिक विकी? – Barthelemy

उत्तर

1

लोगों का एक बहुत है कि तुम क्या पूछा तुलना में एक अलग सवाल का जवाब कर रहे हैं। JDK कोड से अलग है संकलित करने के लिए इस्तेमाल किया ।।

    01: JVM इसे चलाने के लिए

    क्योंकि अधिकांश अनुकूलन JIT होता है इस्तेमाल किया, अपने संकलक से उत्पन्न कोड की गुणवत्ता बहुत महत्वपूर्ण नहीं है यही कारण है के रूप में एक विशेष JDK उपयोग करने के लिए छोड़ देता है

  1. प्रदर्शन संकलित करें। एक समय में आईबीएम जैक्स एक बहुत तेज कंपाइलर था।
  2. त्रुटि रिपोर्टिंग। आईडीई में निर्मित कंपाइलर्स में आमतौर पर बेहतर त्रुटि रिपोर्टिंग होती है।
  3. मानक अनुपालन। उदाहरण के लिए, एक बार आईबीएम ने स्ट्रिंगबिल्डर में एक अतिरिक्त ओवरलोडेड विधि प्रदान की। यदि संकलन समय पर उस अधिभार का चयन किया गया था तो आपका कोड सूर्य JVM पर रनटाइम पर विफल हो जाएगा।
+0

डारॉन के मुताबिक "जेडीके कोड को संकलित करने के लिए प्रयोग किया जाता है जो इसे चलाने के लिए इस्तेमाल किए गए जेवीएम से अलग होता है।" ?? !!, बस इसे और संपादन को रोकने के लिए यहां कॉपी किया गया। इस जवाब को किसने वोट दिया? –

+1

@ राउल डारॉन सही है। जब आप ग्रहण में अपना कोड संकलित करते हैं तो आप एक्लिप्स कंपाइलर का उपयोग करते हैं, और जब आप इसे चलाते हैं, तो आप एक और वीएम (सन, आईबीएम, जेआरॉकिट इत्यादि) का उपयोग करेंगे। – Barthelemy

+0

@ बार्टहेलेमी मैं असहमत हूं कि यह एक संकलक का उपयोग कर एक अच्छा अभ्यास है जो निष्पादन पर्यावरण की तुलना में अन्य स्रोत से प्रदान किया जाता है, लेकिन केवल मेरा विरोध है। –

1

अच्छा, मुझे यकीन है कि लोगों को इसका एहसास नहीं है, लेकिन ग्रहण का अपना संकलक है। इसलिए, जब आप एक्लिप्स का उपयोग कर रहे हैं, तो आप नन-सन (ओरेकल) जेडीके का उपयोग कर रहे हैं।

इसका उपयोग करने के कई फायदे भी हैं। सबसे पहले, ग्रहण में वास्तव में कुछ कंपाइलर हैं। जो सबसे अधिक लाभ प्रदान करता है, आईएमओ, वह है जो आपके द्वारा टाइप किए जाने वाले लाल रेखांकित प्रदान करता है।

ग्रहण कंपाइलर एक और चीज है जो 'compiles' uncompilabe कोड है। इसलिए, यदि आप कोड का एक टुकड़ा चलाते हैं, और उस कोड को कभी भी हिट नहीं करते जो संकलित नहीं कर सका, तो कोड बिना त्रुटि के चलाएगा। अन्यथा आपको NotYetCompiledException मिलता है। (या ऐसा कुछ)

+0

ठीक है, काफी उचित है। लेकिन सादा-वेनिला कमांड लाइन संकलन के मामले में, क्या किसी और चीज का उपयोग करने के लिए एक अच्छा तकनीकी कारण है? – Dave

+0

@ डेव, ठीक है, मैं दुर्भाग्य से उस बात से बात नहीं कर सकता। मुझे पता नहीं है। – jjnguy

+0

ईक्लीप्स द्वारा आपके द्वारा निर्मित कुछ कंपाइलर्स का क्या मतलब है? कई एपीआई (उच्च स्तरीय एएसटी, निम्न-स्तर एएसटी, आंतरिक एएसटी) हैं, कई अनुकूलन विकल्प (चेतावनी क्या है, त्रुटि क्या है), लेकिन मुझे केवल एक कंपाइलर (प्रतीक पार्सर, बाइटकोड जनरेटर इत्यादि) पता है।) – Barthelemy

0

यदि आप एक वेबलॉगिक उपयोगकर्ता हैं, तो जेआरॉकिट बहुत समझ में आता है। यह एक भयानक जेवीएम है। मुझे यकीन नहीं है कि यह सभी ऑपरेटिंग सिस्टम पर चलता है, हालांकि।

+1

आप शायद जेआरॉकिट का मतलब है। – Barthelemy

+2

बेशक, सूर्य और बीईए और अब ओरेकल के स्वामित्व में हैं। –

+0

@ टॉम - हाँ, लेकिन किसी भी मामले में जेरोकिट सूर्य नहीं है, यह बीईए है। – duffymo

0

यदि आप जेआरॉकआईटी या जो भी अन्य जेआरई पोर्टेबिलिटी खोने जा रहे हैं, तो कोई दूसरा रुको, इससे कोई फर्क नहीं पड़ता कि कौन से विज्ञापन आपको बताते हैं: यह 100% पोर्टेबल नहीं है और न ही 100% मानक है।

असल में कई लोग आपको गले लगाने के जेआरई हिस्से को बदलने, रणनीति को विस्तारित करने और बुझाने पर विचार करते हैं, कभी-कभी किसी समस्या को हल करने के लिए "केवल अनुशंसित तरीका" होता है।

http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

वादा, मैं इस साल पहले का सामना करना पड़ा और इसके लिए भुगतान किया :(

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