जावा और जेवीएम लाइसेंस


17

क्या जावा लाइसेंस अन्य कंपनियों को जावा भाषा के अपने संस्करण बनाने की अनुमति देता है या इसे सही तरीके से लागू करता है? जेवीएम के बारे में एक ही सवाल।

मैंने Google एंड्रॉइड के लिए जावा कार्यान्वयन और जावा के उनके .NET संस्करण को बदलने के लिए सन सूटिंग माइक्रोसॉफ्ट के बारे में सुना, लेकिन मैं पूरी अवधारणा को समग्रता के रूप में समझ नहीं सकता।

जवाबों:


25

आप एक कंपाइलर लिख सकते हैं जो जावा लैंग्वेज स्पेसिफिकेशन को लागू करता है या एक JVM लिखता है जो जावा वर्चुअल मशीन विनिर्देश को लागू करता है, लेकिन जब आप आधिकारिक तौर पर इसे "जावा" कहना चाहते हैं, तो आपको यह साबित करना होगा कि यह TCK के परीक्षणों को पास करके संगत है। प्रौद्योगिकी संगतता किट) और ओरेकल से लाइसेंस के लिए भुगतान करते हैं।

ओरेकल हालांकि अन्य पार्टियों के लिए ऐसा करना आसान नहीं बनाता है। Apache का JVM ( Apache Harmony ) का अपना कार्यान्वयन है, लेकिन पहले Sun, अब Oracle, TCK को उपलब्ध कराने में सहयोग नहीं कर रहा है और न ही Apache को लाइसेंस मिल रहा है, जिसके कारण Apache और Oracle के बीच बहुत अधिक नाराजगी है।

बहुत पहले Microsoft के पास जावा का अपना संस्करण था (जिसे वास्तव में "जावा" कहा जाता था)। उन्होंने इसे विंडोज-विशिष्ट बनाने के लिए बदलने की कोशिश की, जिसे सन ऑफ कोर्स पसंद नहीं आया। एक मुकदमा था, माइक्रोसॉफ्ट हार गया, अपने स्वयं के जावा संस्करण को छोड़ दिया और .NET बनाया, जो पूरी तरह से अलग बात है कि बहुत कुछ काम करता है जैसे कि जावा कैसे काम करता है ...

Android के बारे में मुकदमा इस पर आधारित नहीं है; Google यह नहीं कह रहा है कि Android जावा है। वह मुकदमा पेटेंट के बारे में है; ओरेकल के पास अपने स्वयं के जेवीएम कार्यान्वयन में कई विचारों और अवधारणाओं पर पेटेंट है और दावा कर रहा है कि Google ओरेकल से पेटेंट लाइसेंस प्राप्त किए बिना एंड्रॉइड में समान पेटेंट विचारों का उपयोग कर रहा है।


2
Apache चाहता था कि TCK और लाइसेंस मुफ्त में मिले, जिसे सूर्य ने मना कर दिया (जैसा कि उनका अधिकार है)। Microsoft IMO को सूर्य द्वारा शाफ्ट किया गया था क्योंकि उन्होंने जो किया वह भाषा की युक्ति के अनुरूप था, उन्होंने विंडोज के साथ इंटरफेस बनाने के लिए जावा के शीर्ष पर एक पुस्तकालय बनाया। यह केवल खराब समय था कि सूर्य एक ही समय में स्विंग को बाहर कर रहा था। सूर्य ने उस समय अमेरिकी राजनीति में एमएस विरोधी भावना को भुनाया और जीत हासिल की।
jwenting

do आधिकारिक तौर पर इसे जावा कहते हैं ’से आपका क्या अभिप्राय है? क्या मैं jvm को संशोधित कर सकता हूं और बेच सकता हूं? क्या मैं इसे 'जावा सपोर्ट वाला वीएम' नाम दे सकता हूं?
पोट्टरेक

1
@jwenting - एमएस ने जो किया वह पूरी तरह से जावा कल्पना के अनुरूप नहीं था। यह सिर्फ एक "लाइब्रेरी ऑफ़ टॉप" नहीं था (जो ठीक भी होता), यह पूरी तरह से असंगत कार्यान्वयन था (यह सूर्य के अनुपालन परीक्षणों को पारित नहीं किया था जो जावा ट्रेडमार्क का उपयोग करने के लिए एक आवश्यकता थी)। राजनीतिक स्थिति के बावजूद, सूर्य निश्चित रूप से उस पर अधिकार में था।
मीका

@ मिकेरा ने सिवाय इसके कि एमएस ने इसे कभी भी बहुत कारण के लिए जावा नहीं कहा ...
jwenting

1
समस्या यह थी कि एमएस ने मौजूदा जावा कक्षाओं में तरीकों को जोड़ा, जिससे मानक कक्षाओं के साथ असंगत होने के खिलाफ कोड संकलित किया गया। यह निश्चित रूप से लॉक का निर्माण करेगा जबकि जावा का आधार यह है कि इसे किसी भी प्लेटफ़ॉर्म पर अपरिवर्तित नहीं चलना चाहिए।
पीटर क्रिएन्स

3

ठीक है, जैसा कि मैं इसे समझता हूं, आप सभी विनिर्देश को लागू कर सकते हैं जो आपको पसंद है - वैध रूप से "जावा" कॉल करने में सक्षम होने के लिए आपको संगतता किट को लाइसेंस और पास करना होगा, जो स्पष्ट रूप से तुच्छ नहीं है।

एंड्रॉइड "जावा" नहीं है, हालांकि यह जावा भाषा का उपयोग करता है। यह TCK को पारित करने का प्रयास भी नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.