इतने सारे JDKs ... कौन सा उपयोग करना है और क्या यह धमकी देता है?

अनुवादक से: इस लेख का अनुवाद करने का निर्णय स्वयं नहीं हुआ - बल्कि, यह एक आवश्यक उपाय है :)। हम, सीयूबीए ढांचे के विक्रेताओं के रूप में, इस मुद्दे के साथ पर्यावरणीय नियमितता के साथ संपर्क कर रहे हैं। बेशक, यह हमारे लिए भी एक अत्यंत महत्वपूर्ण विषय है, और नवीनतम परिवर्तनों के जवाब में, हमने ओरेकल JDK और OpenJDK दोनों पर परीक्षण बेंचों को उठाया - यह उपाय वर्तमान में हमारे उपयोगकर्ताओं को अप्रत्याशित लाइसेंस खर्चों से बचाता है। हालांकि, यह विषय अभी तक बंद नहीं हुआ है, और हम घटनाओं के विकास की बारीकी से निगरानी करते हैं, और कौन जानता है, शायद हमें अगले साल कुछ अन्य जेडीके विधानसभाओं के लिए स्टैंड जोड़ना होगा ...


बिल्ली के नीचे का लेख इस तथ्य से मोहित होता है कि यह अपनी समस्याओं के साथ सफलतापूर्वक और सबसे लोकप्रिय जेडीके का वर्णन करता है।


ओरेकल ने हाल ही में घोषणा की कि जावा का विकास नाटकीय रूप से "रिलीज ट्रेन" के स्विच के लिए धन्यवाद बदल देगा - संस्करणों को बाहर करने के लिए एक नया दृष्टिकोण। इस परिवर्तन ने संस्करण समर्थन के संदर्भ में भी बदलाव किए, जो अब सभी के लिए नहीं, बल्कि केवल LTS संस्करणों के लिए लागू किया जाएगा। जावा चैंपियंस समुदाय ने पेश किए जा रहे नवाचारों को स्पष्ट किया है, एक विस्तृत दस्तावेज ऑनलाइन उपलब्ध है


इस खबर के साथ भी, सवाल बने हुए हैं: वर्तमान में JDK बिल्ड क्या उपलब्ध हैं? क्या वे स्वतंत्र या वाणिज्यिक होंगे? इस प्रश्न का उत्तर देने से पहले, यह समझना महत्वपूर्ण है कि एक उत्पाद के रूप में जेडीके के लिए क्या आवश्यकताएं हैं। वास्तव में, केवल एक कोर JDK स्रोत कोड है। वह यहां है । कोई भी अपनी खुद की असेंबली बनाने और उसे नेटवर्क पर रखने के लिए सोर्स कोड का इस्तेमाल कर सकता है। हालांकि, एक अलग प्रमाणन प्रक्रिया है जिसे जेडीके विधानसभा के लिए वैध माना जाना चाहिए। प्रमाणन जावा सामुदायिक प्रक्रिया (JCP) द्वारा प्रदान किया जाता है, जो प्रौद्योगिकी संगतता किट (TCK) प्रदान करता है। यदि कोई संगठन एक नई OpenJDK असेंबली बनाता है जो TCK से मिलती है, तो इसे "Java SE संगत" माना जाता है।


ध्यान रखें कि असेंबली कंपनी को "जावा एसई" नहीं कहा जा सकता है जब तक कि असेंबली कंपनी ने ओरेकल से वाणिज्यिक लाइसेंस प्राप्त नहीं किया हो। उदाहरण के लिए, AdoptOpenJDK बनाता है कि टीसीके पास "जावा एसई" नहीं है, लेकिन "जावा एसई अनुपालन" हैं। आपको यह भी विचार करने की आवश्यकता है कि प्रमाणीकरण अब "पैरोल पर" आधारित है - परिणाम सत्यापन के लिए जेसीपी / ओरेकल को नहीं भेजे जाते हैं और वर्गीकृत जानकारी है। संक्षेप में, प्रत्येक विक्रेता जो OpenJDK स्रोत कोड लेता है और संस्करण बनाता है एक और अलग JDK बिल्ड बनाता है।


OpenJDKbilds


तो, आगे की हलचल के बिना, हम अनुशंसा करते हैं कि आप निम्न रेडी-टू-यूज़ JDKs के साथ खुद को परिचित करें:


ओरेकल JDK


यह जावा 11 का मुख्य प्रदाता है (रिलीज पहले ही हो चुकी है)। यह पेड सपोर्ट वाला कमर्शियल वर्जन है। इसे मुफ्त में डाउनलोड किया जा सकता है और इसका उपयोग सीधे विकास के लिए किया जाता है। आप इसका उपयोग ओरेकल को भुगतान किए बिना कर सकते हैं (इसलिए कई ऐसे लोग जो लाइसेंस में रुचि नहीं रखते हैं, यह एक जाल है)। ओरेकल की योजना 2026 और उसके बाद तक पेड सपोर्ट देने की है। इसके विपरीत जो पहले था, ओरेकल JDK असेंबली OpenJDK की तुलना में "बेहतर" नहीं है (जब तक दोनों समान सुरक्षा पैच स्तर पर हैं)।


Oracle OpenJDK बिल्ड


क्लासलैथ एक्सटेंशन (वाणिज्यिक उपयोग के लिए उपयुक्त) के साथ जीपीएल के तहत वितरित ओपनजेडके के मुफ्त गैर-ब्रांडेड संस्करण हैं। ये बिल्ड वर्जन रिलीज़ होने के 6 महीने बाद ही उपलब्ध हैं। जावा 11 से जावा संस्करण 11.0.0 और दो सुरक्षा पैच, 11.0.1 और 11.0.2 जारी होने की उम्मीद है। Oracle से OpenJDK संस्करण और इसके पैच का उपयोग जारी रखने के लिए, आपको लॉन्च के एक महीने बाद जावा 12 में अपग्रेड करना होगा। कृपया ध्यान दें कि सुरक्षा पैच प्रदान करने की प्रक्रिया समर्थन प्रदान करने की प्रक्रिया से अलग है, जिसमें प्रसंस्करण त्रुटि रिपोर्ट के लिए भुगतान शामिल है।


AdoptOpenJDK


ये भी मुफ्त और गैर-ब्रांडेड ओपनजेडके बिल्ड हैं, जो जीपीएल के तहत क्लासपाथ एक्सटेंशन के साथ वितरित किए गए हैं, केवल ओरेकल के ओपनजेडके बिल्ड के विपरीत, ये बिल्ड संस्करण प्रमुख संस्करणों जैसे जावा 11 के लिए लंबे समय तक चलेगा। जावा 11 संस्करण जारी किए जाएंगे। 4 साल के लिए, अगले प्रमुख रिलीज के एक साल बाद। AdoptOpenJDK सामुदायिक उन्मुख है। जबकि अन्य टीमें मूल OpenJDK रिपॉजिटरी के लिए सुरक्षा फ़िक्स बनाती और प्रकाशित करती हैं, वे बिल्ड रिलीज़ करेंगे। आईबीएम और रेड हैट दोनों ने संकेत दिया है कि वे ऐसे पैच जारी करने का इरादा रखते हैं।


AdoptOpenJDK OpenJ9


मानक OpenJDK बिल्ड के अलावा, AdoptOpenJDK भी हॉटस्पॉट के बजाय OpenJ9 के साथ संस्करण प्रदान करेगा। OpenJ9 मूल रूप से एक IBM JVM था, लेकिन OpenJ9 अब खुला स्रोत है। और, वैसे, यह विकल्प अध्ययन के सबसे योग्य है।


Red Hat OpenJDK


Red Hat, Red Hat Enterprise Linux (RHEL) पर OpenJDK बिल्ड संस्करण प्रदान करता है, जो पेड सपोर्ट वाला व्यावसायिक उत्पाद है। RedJD OpenJDK में सुरक्षा सुधारों का एक बहुत अच्छा काम करता है। अतीत में, Red Hat जावा 6 और 7 सुरक्षा अद्यतनों के लिए जिम्मेदार था। Red Hat निर्माण ऑपरेटिंग सिस्टम के साथ अधिक एकीकृत है, इसलिए इसे एक विशिष्ट OpenJDK बिल्ड नहीं कहा जा सकता है (कोई अंतिम उपयोगकर्ता JDK नहीं है)।


अज़ुल ज़ुलु


ज़ुलू पेड कामर्शियल सपोर्ट वाला ओपनजेडके का ब्रांडेड संस्करण है। इसके अलावा, हालांकि अज़ुल ज़ुलु समुदाय के माध्यम से मुफ्त में कुछ ज़ुलु आइटम प्रदान करता है, लेकिन इन असेंबली को उपलब्ध कराने के लिए उनके पास कोई विशेष दायित्व नहीं है। अज़ुल में अन्य विक्रेताओं के विपरीत जावा 9, 13 और 15 के लिए समर्थन सहित एक काफी बड़ी ज़ुलु सहायता योजना है।


अमेज़ॅन कोरेटो


यह वर्णित सभी विकल्पों में से सबसे नया है। Corretto OpenJDK बिल्ड का एक निःशुल्क संस्करण है, जो TCK के माध्यम से दीर्घकालिक समर्थन के साथ निर्मित होता है। यह OpenJDK के सभी संस्करणों के लिए मानक लाइसेंसिंग शर्तों के तहत वितरित किया जाता है: GPL + CE। अमेज़ॅन अपने स्वयं के पैच बनाएगा और AWS पर Corretto लॉन्च करेगा, इसलिए इसका उपयोग काफी सक्रिय रूप से किया जाएगा (और पहले से ही कुछ उत्पादों में जोड़ा गया है)। जावा 8 के लिए समर्थन की योजना कम से कम जून 2023 तक है।


मूल OpenJDK को विधानसभा के विभिन्न संस्करणों में परिवर्तित करने की प्रक्रिया में, निर्माता विभिन्न उपयोगिताओं को जोड़ सकता है या उत्पाद को ब्रांड कर सकता है यदि यह प्रमाणन (टीसीके) को रोकता नहीं है। उदाहरण के लिए, आप API या नए भाषा संसाधनों में एक नई सार्वजनिक विधि नहीं जोड़ सकते।


अन्य JDK कार्यान्वयन जैसे IBM और SAPMachine हैं। हालाँकि, असेंबली के इन संस्करणों को अक्सर उपयोग नहीं किया जाता है, इसलिए इस आलेख में उनका उल्लेख नहीं किया गया है। अधिक जानकारी यहाँ और यहाँ मिल सकती है


निष्कर्ष


व्यक्तिगत रूप से, मुझे JDK के कई संस्करणों की उपस्थिति में एक विशेष समस्या दिखाई नहीं दे रही है, क्योंकि इन सभी को प्रमाणित (TCK) करने की आवश्यकता है। वास्तव में चिंता करने लायक बात यह है कि भविष्य में सिरदर्द से बचने के लिए ओरेकल से मालिकाना जेडीके में से एक का उपयोग और असेंबली का मुफ्त संस्करण है। यदि आप केवल मूल कार्यों का उपयोग करते हैं (उदाहरण के लिए, आपका व्यवसाय विशेष रूप से सुरक्षा अद्यतनों पर निर्भर नहीं है), तो ओपीजेडीके ओरेकल से बनता है (ओरेकलजेडकेके नहीं) आपके लिए अधिक उपयुक्त है, क्योंकि वे लगातार अद्यतन किए जाते हैं (रिलीज़ होने के 6 महीने के भीतर), और आप बिना किसी समस्या के उत्पादन में JDK का उपयोग कर सकते हैं। यदि आपका व्यवसाय क्लाउड सेवाओं (या AWS के साथ) का उपयोग करता है, तो AWS Corretto, जो पहले से ही Amazon Linux और Docker पर प्रयोग करने योग्य है , एक अच्छा विकल्प है।

Source: https://habr.com/ru/post/hi434790/


All Articles