जीरा एक जावा प्रोग्राम है जो एक वेब इंटरफ़ेस रखता है। जब इसके नीचे का जावा बदल जाता है या गायब हो जाता है, तो जीरा एक लॉग लिखने की तुलना में तेजी से विफल हो जाता है - और वह गति ही आपका सुराग है।
कुछ जीरा स्टार्टअप विफलताएँ लंबे लॉग उत्पन्न करती हैं। जावा विफलताएँ लगभग कुछ भी नहीं उत्पन्न करती हैं, क्योंकि यदि जावा प्रारंभ नहीं हो सकता है, तो जीरा नहीं चल सकता है - और लॉग नहीं कर सकता है। सामान्य कहानी: किसी ने जेडीके को अपग्रेड किया, विंडोज क्लीनअप ने पुराने जावा को हटा दिया, या JAVA_HOME को किसी अन्य एप्लिकेशन के लिए बदल दिया गया, और जीरा की सेवा अब उस जावा को इंगित करती है जो गायब है, 32-बिट जहां इसे 64-बिट होना चाहिए, या बस एक संस्करण जो आपका जीरा रिलीज समर्थन नहीं करता है। यह पृष्ठ दिखाता है कि कैसे पता लगाया जाए कि कौन सा जावा जीरा वास्तव में उपयोग कर रहा है और इसे सही कैसे करें।
जीरा केवल वही उपयोग नहीं करता जो जावा विंडोज़ पसंद करता है। इसकी स्टार्टअप स्क्रिप्ट पहले JAVA_HOME को देखती है, फिर JRE_HOME को, और Windows सेवा अपने स्वयं के कॉन्फ़िगरेशन में रिकॉर्ड किए गए जावा का उपयोग करती है। यही कारण है कि 'जावा स्थापित है' और 'जीरा अभी भी विफल है' दोनों एक ही समय में सत्य हैं - वे अलग-अलग जावा इंस्टॉलेशन के बारे में बात कर रहे हैं।
bin फ़ोल्डर खोलें और setenv.bat ढूंढेंJAVA_HOME या JRE_HOME सेटिंग वाली पंक्तियाँ देखें - उनके द्वारा बताए गए सटीक फ़ोल्डर पर ध्यान देंbin फ़ोल्डर वास्तव में java.exe के अंदर मौजूद हैjava -version उसके bin फ़ोल्डर के अंदर से, और संस्करण लिख लेंयह वह कदम है जिस पर लोग अनुमान लगाते हैं, और अनुमान लगाना महंगा है। प्रत्येक जीरा रिलीज़ जावा संस्करणों के एक विशिष्ट सेट का समर्थन करता है: पुराने जीरा रिलीज़ जावा 8 या 11 पर चलते हैं, नए के लिए जावा 11 या 17 की आवश्यकता होती है, और नवीनतम के लिए जावा 17 या बाद के संस्करण की आवश्यकता होती है। एक जावा जो बहुत नया है वह उतना ही मुश्किल से विफल होता है जितना कि बहुत पुराना जावा - क्लास-फ़ाइल और मॉड्यूल परिवर्तन वास्तविक हैं, झंझट नहीं।
atlassian-jira.log में हैएक बार जब आपको सही JDK पता चल जाए, तो प्रत्येक सूचक को सहमत बनाएं। केवल सिस्टम पर्यावरण चर को बदलना क्लासिक आधा-फिक्स है: सेवा अपने स्वयं के रैपर सेटिंग्स में संग्रहीत जावा का उपयोग जारी रख सकती है, और विफलता आपकी मरम्मत से बच जाती है।
setenv.bat को संपादित करें ताकि JAVA_HOME समर्थित JDK फ़ोल्डर को नाम दे - कोई पिछला bin नहीं, केवल JDK रूटJAVA_HOME वहां सेट है, तो विंडोज़ सिस्टम पर्यावरण चर की भी जाँच करेंbin फ़ोल्डर में टॉमकैट सेवा कॉन्फ़िगरेशन टूल का उपयोग करके सेवा की जावा सेटिंग्स खोलें और पुष्टि करें कि वहां जावा पथ मेल खाता हैजावा समस्याओं के बारे में बताया गया है। सेवा कुछ ही सेकंड में विफल हो जाती है. विंडोज़ इवेंट व्यूअर जीरा के स्वयं के लॉग शुरू होने से पहले ही सेवा या जेवीएम में त्रुटि दिखाता है। और जब लॉग मौजूद होते हैं, तो UnsupportedClassVersionError (जावा कोड के लिए बहुत पुराना) या मॉड्यूल-एक्सेस त्रुटियां (जावा बहुत नया और सख्त) जैसे वाक्यांश सीधे बेमेल का नाम देते हैं। हालाँकि, 'जावा वर्चुअल मशीन नहीं बना सका' संदेश आमतौर पर मेमोरी सेटिंग्स है, संस्करण नहीं - जो कि हीप फिक्स से संबंधित है, इस से नहीं।
UnsupportedClassVersionError या java.lang त्रुटियों के लिए कैटलिना लॉग खोजेंपूर्ण जीरा स्टार्टअप मरम्मत, चरण दर चरण, सटीक स्क्रीन और लॉग लाइनों के साथ लाइव दिखाई गई।
▶️ Watch Full Videoक्योंकि जीरा शायद उस जावा का उपयोग नहीं कर रहा है। जिरा अपने स्वयं के setenv.bat में JAVA_HOME और अपने विंडोज़ सेवा कॉन्फ़िगरेशन में दर्ज जावा का अनुसरण करता है, जो पुराने या हटाए गए JDK को इंगित कर सकता है जबकि अन्य एप्लिकेशन ख़ुशी से सिस्टम जावा का उपयोग करते हैं। जिरा जिस फ़ोल्डर की ओर इशारा करता है, उसके अंदर सटीक java.exe सत्यापित करें, उस फ़ोल्डर से java -version चलाएं।
केवल तभी जब आपके सटीक जीरा संस्करण के लिए एटलसियन का समर्थित प्लेटफ़ॉर्म पृष्ठ उस जावा संस्करण को सूचीबद्ध करता है। नया स्वचालित रूप से समर्थित नहीं है - एक बहुत नया जावा बदले हुए वर्ग संस्करणों और सख्त मॉड्यूल नियमों के माध्यम से जीरा को बहुत पुराने के समान ही विश्वसनीय रूप से तोड़ता है। प्रलेखित सीमा का मिलान करें; उच्चतम संख्या का पीछा न करें.
अद्यतन ने संभवतः उस JDK को प्रतिस्थापित या हटा दिया है जिसे जिरा का JAVA_HOME इंगित करता है, या सिस्टम JAVA_HOME को बदल दिया है जिसे किसी अन्य व्यवस्थापक ने बाद में जिरा के कॉन्फ़िगरेशन में कॉपी किया है। समाधान पूरे सर्वर को वापस रोल करना नहीं है - setenv.bat और सेवा की जावा सेटिंग्स का उपयोग करके एक समर्थित JDK को साथ-साथ स्थापित करना या रखना और उस पर केवल जिरा को इंगित करना है।