उत्पादन में चलाने के लिए जावा संस्करण पर विचार


14

कुछ लोग प्रौद्योगिकियों के रक्तस्राव के किनारे को चलाते हैं - उस दिन को अपडेट करते हैं जो कुछ अद्यतन किया जाता है। उत्पादन में, यह उतना उपयुक्त नहीं है।

उत्पादन के लिए वर्तमान (जावा 7) संस्करण तैयार होने के बारे में शोध करने से पुरानी मात्रा में महत्वपूर्ण सामग्री का उत्पादन होता है जो अब सही नहीं हो सकता है (इस लेखन के समय जावा 7 एक साल और डेढ़ साल के लिए बाहर हो गया है जो काफी लंबा लगता है) ।

जावा के बाद के संस्करण में उत्पादन वातावरण को उन्नत करने के लिए क्या उचित है यह निर्धारित करने के लिए मुझे क्या विचार करने की आवश्यकता है?


यहां तक ​​कि अगर यह था, तो किसी भी तीसरे पक्ष के पुस्तकालय / प्लग-इन का उपयोग किया जाता है (यदि कोई है) तो उक्त आवेदन को जावा 7, (जोखिम भरा व्यवसाय) के साथ ठीक होना आवश्यक है।
arin

2
हाँ। एकमात्र मुद्दा जो मैंने चलाया है, वह यह है कि मैं Red Hat Enterprise Linux 4 पर Java 7 स्थापित नहीं कर सका, लेकिन फिर, वह OS अप्रचलित है। मैं इसे उत्पादन में हर जगह उपयोग कर रहा हूँ लगभग 6 महीने अब बिना किसी अड़चन के।
ग्लेनपेटर्सन

@arin: जावा के साथ नहीं, वास्तव में नहीं। यह हास्यास्पद रूप से नीचे की ओर संगत है।
माइकल बोर्गवर्ड

@MichaelBorgwardt सिद्धांत रूप में मैं आपसे सहमत हूं, लेकिन परीक्षण के माहौल में मैंने तीसरे पक्ष के पुस्तकालयों को एक छोटे संस्करण के उन्नयन के लिए अद्यतन करने के बाद भी हमारे परीक्षण कोड में अनियमित व्यवहार / दुर्घटनाओं का कारण देखा है।
मेष

@ ईरिन: यकीन है, यह हो सकता है। लेकिन मेरे अनुभव में यह इतना दुर्लभ है कि लगभग कुछ और (विशेष रूप से किसी का अपना कोड) बदलने की तुलना में जावा को अपडेट करने से डरने का कम कारण है।
माइकल बोर्गवर्ड

जवाबों:


11

पूछने का पहला सवाल "क्या जावा का संस्करण मशीन पर समर्थित है?" जेआरई को अपडेट करते समय एक बात है, यह हो सकता है कि अंतर्निहित ओएस जावा के नए संस्करण (समर्थित प्रमाणपत्र और समर्थन अनुबंध और उस तरह के कई उद्यम वातावरण की तरह) चलाने का समर्थन नहीं करता है।

कई जावा उत्पादन वातावरण वास्तव में एक एप्लिकेशन सर्वर के शीर्ष पर चल रहे हैं । यह अगला विचार होगा। जावा ईई ऐप सर्वर की विकिपीडिया तुलना से पता चलता है कि जावा ईई का कौन सा संस्करण समर्थित है। इसे आगे Oracle के JavaEE संगतता अवलोकन में देखा जा सकता है । JBoss एंटरप्राइज़ एप्लिकेशन प्लेटफ़ॉर्म 6 के लिए परीक्षण किया गया कॉन्फ़िगरेशन जावा SE 6.0 अपडेट 6u30 के विरुद्ध है। जावा एसई 6.0 अपडेट 6u30 JBoss एप्लिकेशन सर्वर 7.1.0 फाइनल के लिए परीक्षण किया गया कॉन्फ़िगरेशन भी है । ये जावा 7 में काम कर सकते हैं, लेकिन इनका परीक्षण विन्यास नहीं है।

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

रेखा के नीचे चौखटे हैं । इसका एक उदाहरण JAXB है जो जावा और स्प्रिंग के साथ आता है जो इसका उपयोग करता है। जावा 7 में परिवर्तन करने से जेएएक्सबी अपडेट हुआ जिसमें कुछ फ्रेमवर्क के साथ असंगत कोड उत्पन्न हुआ था (जिसके लिए उन्हें अपडेट करना होगा और उनकी निर्भरता को अपडेट करना होगा ...)।

बिल्ड टूल सूची में अगले हैं। किसी को यह सुनिश्चित करने की आवश्यकता होगी कि बिल्ड वातावरण जावा के उचित संस्करण का उपयोग कर रहा है। जावा 7 के लिए कोड लिखना लेकिन उस संस्करण को अपडेट नहीं करना जो मावेन या एंट का उपयोग करता है, तब समस्याएँ पैदा होंगी। ऐसे समय होते हैं जब बिल्ड टूल्स स्वयं विशेष प्लगइन्स के साथ एक संस्करण से मजबूती से बंधे होते हैं।

परीक्षण उपकरण । पीएमडी, फाइंडबग्स और चेकस्टाइल जैसी चीजें जावा के एक नए संस्करण में नई संरचनाओं को नहीं पहचान सकती हैं - ये स्ट्रिंग स्विच स्टेटमेंट या कंपाउंड कैच के साथ बहुत भ्रमित हो सकते हैं। ऐसे उपकरण जो कोड कवरेज जैसे उपकरण में आते हैं, नए JVM में काम नहीं कर सकते हैं। जावा 7 के संदर्भ में, कोबर्तुरा और एम्मा को नए JRE (फिर से, इन एप्लिकेशन को अपडेट नहीं किया गया है) यह देखने के लिए कि कोड कौन से कोड चलाया जाता है और जो नहीं है) को देखें। ( jdk7 के लिए ओपन सोर्स कोड कवरेज लाइब्रेरी देखें )। इसे एक से दूसरे में स्विच करने के लिए बिल्ड स्क्रिप्ट में बदलाव की आवश्यकता हो सकती है।

फिर आईडीई है । किसी को IDE को एक ऐसे संस्करण में अपडेट करना होगा जो भाषा में नई संरचनाओं से अवगत है। ग्रहण की जावा 7 के समर्थन की घोषणा इन मुद्दों को दिखाती है।

अंतिम और निश्चित रूप से कम से कम डेवलपर नहीं है । यह डेवलपर पर निर्भर है कि वह नया कोड लिखे और इस बारे में जागरूक हो कि कोड का पुनर्गठन कैसे किया जा सकता है। जावा 1.4 से 1.5 तक जाने पर, टेम्प्लेट और एनोटेशन पेश किए गए और डेवलपर्स को नई संरचनाओं की मानसिकता में आने में समय लगा। इसी तरह संग्रह 1.2 में फिर से काम करते हैं और डेवलपर्स को हैशटेबल और वेक्टर का उपयोग करने से दूर करते हैं। संस्करण को अपडेट करना नई भाषा संरचनाओं में कुछ मात्रा में प्रशिक्षण के साथ होना चाहिए।

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