Technical Anshu
Tutorials Blog
☕ जावा संस्करण ठीक करें

जिरा जावा होम सेट नहीं है या गलत जेडीके संस्करण स्टार्टअप विफलता के पीछे जावा समस्या को ठीक करता है

जीरा एक जावा प्रोग्राम है जो एक वेब इंटरफ़ेस रखता है। जब इसके नीचे का जावा बदल जाता है या गायब हो जाता है, तो जीरा एक लॉग लिखने की तुलना में तेजी से विफल हो जाता है - और वह गति ही आपका सुराग है।

✍️ Technical Anshu🪟 Windows Server⏱️ 8 minute read
🎥 वीडियो में पूरा समाधान देखें - हर चरण स्क्रीन पर लाइव दिखाया गया है

कुछ जीरा स्टार्टअप विफलताएँ लंबे लॉग उत्पन्न करती हैं। जावा विफलताएँ लगभग कुछ भी नहीं उत्पन्न करती हैं, क्योंकि यदि जावा प्रारंभ नहीं हो सकता है, तो जीरा नहीं चल सकता है - और लॉग नहीं कर सकता है। सामान्य कहानी: किसी ने जेडीके को अपग्रेड किया, विंडोज क्लीनअप ने पुराने जावा को हटा दिया, या JAVA_HOME को किसी अन्य एप्लिकेशन के लिए बदल दिया गया, और जीरा की सेवा अब उस जावा को इंगित करती है जो गायब है, 32-बिट जहां इसे 64-बिट होना चाहिए, या बस एक संस्करण जो आपका जीरा रिलीज समर्थन नहीं करता है। यह पृष्ठ दिखाता है कि कैसे पता लगाया जाए कि कौन सा जावा जीरा वास्तव में उपयोग कर रहा है और इसे सही कैसे करें।

Command Prompt - checking the Java Jira will actually use (illustration)
java -version java version "1.8.0_202" (the PATH Java - not always Jira's Java) setenv.bat says: JAVA_HOME=C:\Java\jdk-21 Problem: this Jira version does not support Java 21.
आपके PATH पर संस्करण और जिरा द्वारा उपयोग किया जाने वाला संस्करण दो अलग-अलग चीजें हो सकते हैं। उदाहरण मान चित्रण के रूप में दिखाए गए हैं।
1

समझें कि जीरा अपना जावा कैसे चुनता है

जीरा केवल वही उपयोग नहीं करता जो जावा विंडोज़ पसंद करता है। इसकी स्टार्टअप स्क्रिप्ट पहले JAVA_HOME को देखती है, फिर JRE_HOME को, और Windows सेवा अपने स्वयं के कॉन्फ़िगरेशन में रिकॉर्ड किए गए जावा का उपयोग करती है। यही कारण है कि 'जावा स्थापित है' और 'जीरा अभी भी विफल है' दोनों एक ही समय में सत्य हैं - वे अलग-अलग जावा इंस्टॉलेशन के बारे में बात कर रहे हैं।

  1. इंस्टॉल डायरेक्टरी के अंदर जिरा bin फ़ोल्डर खोलें और setenv.bat ढूंढें
  2. JAVA_HOME या JRE_HOME सेटिंग वाली पंक्तियाँ देखें - उनके द्वारा बताए गए सटीक फ़ोल्डर पर ध्यान दें
  3. उस फ़ोल्डर को खोलें और पुष्टि करें कि bin फ़ोल्डर वास्तव में java.exe के अंदर मौजूद है
  4. उस प्रतिलिपि को सीधे चलाएँ: java -version उसके bin फ़ोल्डर के अंदर से, और संस्करण लिख लें
  5. यदि नामित फ़ोल्डर मौजूद नहीं है, तो आपको दोष मिल गया है - जीरा एक जावा की ओर इशारा कर रहा है जिसे स्थानांतरित या हटा दिया गया था
2

जेडीके को अपने सटीक जीरा संस्करण से मिलाएं

यह वह कदम है जिस पर लोग अनुमान लगाते हैं, और अनुमान लगाना महंगा है। प्रत्येक जीरा रिलीज़ जावा संस्करणों के एक विशिष्ट सेट का समर्थन करता है: पुराने जीरा रिलीज़ जावा 8 या 11 पर चलते हैं, नए के लिए जावा 11 या 17 की आवश्यकता होती है, और नवीनतम के लिए जावा 17 या बाद के संस्करण की आवश्यकता होती है। एक जावा जो बहुत नया है वह उतना ही मुश्किल से विफल होता है जितना कि बहुत पुराना जावा - क्लास-फ़ाइल और मॉड्यूल परिवर्तन वास्तविक हैं, झंझट नहीं।

  1. अपना जीरा संस्करण ढूंढें - यह किसी भी जीरा पेज के पाद लेख में, इंस्टॉलेशन के संस्करण फ़ाइल में, या आपके अंतिम कार्य atlassian-jira.log में है
  2. सटीक जीरा संस्करण के लिए एटलसियन का समर्थित प्लेटफ़ॉर्म पृष्ठ खोलें और इसकी जावा आवश्यकता पढ़ें
  3. इसकी तुलना उस संस्करण से करें जिसे आपने पिछले अनुभाग में सत्यापित किया था - उन्हें ओवरलैप होना चाहिए
  4. यदि वे ऐसा नहीं करते हैं, तो ईमानदार समाधान जीरा को एक समर्थित जेडीके पर इंगित करना है (यदि आवश्यक हो तो एक तरफ स्थापित करें), वर्तमान को मजबूर नहीं करना है
  5. 32-बिट जावा से पूरी तरह बचें - उपयोगी ढेर का उपयोग करने के लिए जीरा को 64-बिट जेवीएम की आवश्यकता होती है
3

JAVA_HOME और सेवा कॉन्फ़िगरेशन ठीक करें

एक बार जब आपको सही JDK पता चल जाए, तो प्रत्येक सूचक को सहमत बनाएं। केवल सिस्टम पर्यावरण चर को बदलना क्लासिक आधा-फिक्स है: सेवा अपने स्वयं के रैपर सेटिंग्स में संग्रहीत जावा का उपयोग जारी रख सकती है, और विफलता आपकी मरम्मत से बच जाती है।

  1. जिरा सेवा बंद करो
  2. setenv.bat को संपादित करें ताकि JAVA_HOME समर्थित JDK फ़ोल्डर को नाम दे - कोई पिछला bin नहीं, केवल JDK रूट
  3. यदि कोई विरोधाभासी JAVA_HOME वहां सेट है, तो विंडोज़ सिस्टम पर्यावरण चर की भी जाँच करें
  4. यदि आपका जीरा एक सेवा के रूप में चलता है, तो जीरा bin फ़ोल्डर में टॉमकैट सेवा कॉन्फ़िगरेशन टूल का उपयोग करके सेवा की जावा सेटिंग्स खोलें और पुष्टि करें कि वहां जावा पथ मेल खाता है
  5. सेवा शुरू करें और कैटालिना लॉग देखें - एक सही जावा दिखाता है कि जीरा पोर्ट और डेटाबेस चरणों पर आगे बढ़ रहा है
4

जावा विफलता के हस्ताक्षरों को पहचानें

जावा समस्याओं के बारे में बताया गया है। सेवा कुछ ही सेकंड में विफल हो जाती है. विंडोज़ इवेंट व्यूअर जीरा के स्वयं के लॉग शुरू होने से पहले ही सेवा या जेवीएम में त्रुटि दिखाता है। और जब लॉग मौजूद होते हैं, तो UnsupportedClassVersionError (जावा कोड के लिए बहुत पुराना) या मॉड्यूल-एक्सेस त्रुटियां (जावा बहुत नया और सख्त) जैसे वाक्यांश सीधे बेमेल का नाम देते हैं। हालाँकि, 'जावा वर्चुअल मशीन नहीं बना सका' संदेश आमतौर पर मेमोरी सेटिंग्स है, संस्करण नहीं - जो कि हीप फिक्स से संबंधित है, इस से नहीं।

  1. विफलता की गति जांचें: सेकंड का अर्थ है जावा या ढेर; मिनटों का अर्थ है बाद के चरण
  2. विफलता के समय JVM त्रुटियों के लिए इवेंट व्यूअर के एप्लिकेशन लॉग की जाँच करें
  3. विफलता के शीर्ष के पास UnsupportedClassVersionError या java.lang त्रुटियों के लिए कैटलिना लॉग खोजें
🔴 एक समय में एक चीज़ बदलें। जावा मरम्मत लोगों को एक दोपहर में जीरा, जावा और डेटाबेस ड्राइवर को अपग्रेड करने के लिए लुभाती है। यदि सिस्टम काम करता है, तो आपको कभी पता नहीं चलेगा कि कौन सा परिवर्तन मायने रखता है - और यदि यह विफल हो जाता है, तो आपके पास एक के बजाय तीन संदिग्ध होंगे। जावा पॉइंटर को ठीक करें, जीरा शुरू करें, पुष्टि करें, और उसके बाद ही किसी अपग्रेड की योजना बनाएं - पहले जीरा होम डायरेक्टरी और डेटाबेस का बैकअप लें।

🎥 वीडियो में पूरा समाधान देखें

पूर्ण जीरा स्टार्टअप मरम्मत, चरण दर चरण, सटीक स्क्रीन और लॉग लाइनों के साथ लाइव दिखाई गई।

▶️ Watch Full Video
❓ सामान्य प्रश्न (एफएक्यू)

जावा स्थापित है और अन्य ऐप्स के लिए ठीक काम करता है। जीरा अभी भी असफल क्यों होती है?

क्योंकि जीरा शायद उस जावा का उपयोग नहीं कर रहा है। जिरा अपने स्वयं के setenv.bat में JAVA_HOME और अपने विंडोज़ सेवा कॉन्फ़िगरेशन में दर्ज जावा का अनुसरण करता है, जो पुराने या हटाए गए JDK को इंगित कर सकता है जबकि अन्य एप्लिकेशन ख़ुशी से सिस्टम जावा का उपयोग करते हैं। जिरा जिस फ़ोल्डर की ओर इशारा करता है, उसके अंदर सटीक java.exe सत्यापित करें, उस फ़ोल्डर से java -version चलाएं।

क्या मुझे जिरा को ठीक करने के लिए जावा को नवीनतम संस्करण में अपग्रेड करना चाहिए?

केवल तभी जब आपके सटीक जीरा संस्करण के लिए एटलसियन का समर्थित प्लेटफ़ॉर्म पृष्ठ उस जावा संस्करण को सूचीबद्ध करता है। नया स्वचालित रूप से समर्थित नहीं है - एक बहुत नया जावा बदले हुए वर्ग संस्करणों और सख्त मॉड्यूल नियमों के माध्यम से जीरा को बहुत पुराने के समान ही विश्वसनीय रूप से तोड़ता है। प्रलेखित सीमा का मिलान करें; उच्चतम संख्या का पीछा न करें.

सर्वर पर जावा अपडेट के ठीक बाद जीरा विफल होने लगा। क्या हुआ?

अद्यतन ने संभवतः उस JDK को प्रतिस्थापित या हटा दिया है जिसे जिरा का JAVA_HOME इंगित करता है, या सिस्टम JAVA_HOME को बदल दिया है जिसे किसी अन्य व्यवस्थापक ने बाद में जिरा के कॉन्फ़िगरेशन में कॉपी किया है। समाधान पूरे सर्वर को वापस रोल करना नहीं है - setenv.bat और सेवा की जावा सेटिंग्स का उपयोग करके एक समर्थित JDK को साथ-साथ स्थापित करना या रखना और उस पर केवल जिरा को इंगित करना है।

यह गाइड एक जीरा को ठीक करने पर तकनीकी अंशू वीडियो पर आधारित है जो शुरू नहीं होगा • एक कदम पर अटक गया है? वीडियो टिप्पणियों में पूछें - आपको उत्तर मिलेगा 🙏