Technical Anshu
Tutorials Blog
☕ إصلاح إصدار جافا

Jira JAVA HOME غير مضبوط أو إصدار JDK خاطئ يعمل على إصلاح مشكلة Java وراء فشل بدء التشغيل

Jira هو برنامج Java يرتدي واجهة ويب. عندما تتغير لغة Java الموجودة أسفلها أو تختفي، يفشل Jira بشكل أسرع حتى من قدرته على كتابة سجل - وهذه السرعة هي دليلك.

✍️ Technical Anshu🪟 Windows Server⏱️ 8 minute read
🎥 شاهد الإصلاح الكامل في الفيديو – كل خطوة تظهر مباشرة على الشاشة

تنتج بعض حالات فشل بدء تشغيل Jira سجلات طويلة. لا ينتج عن فشل Java أي شيء تقريبًا، لأنه إذا تعذر بدء تشغيل Java، فلن يتمكن Jira من التشغيل - ولا يمكنه تسجيل الدخول. القصة المعتادة: قام شخص ما بترقية JDK، أو قام تنظيف Windows بإزالة Java قديم، أو تم تغيير JAVA_HOME لتطبيق آخر، وتشير خدمة Jira الآن إلى Java مفقود، 32 بت حيث يجب أن يكون 64 بت، أو ببساطة إصدار لا يدعمه إصدار Jira الخاص بك. توضح هذه الصفحة كيفية العثور على Java Jira الذي يستخدمه بالفعل وضبطه بشكل صحيح.

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 الخاص بك والإصدار الذي يستخدمه Jira شيئين مختلفين. قيم المثال الموضحة كرسم توضيحي.
1

افهم كيف يختار Jira لغة Java الخاصة به

لا يستخدم Jira ببساطة ما يفضله Java Windows. تنظر البرامج النصية لبدء التشغيل إلى JAVA_HOME أولاً، ثم JRE_HOME، وتستخدم خدمة Windows Java المسجلة في التكوين الخاص بها. ولهذا السبب فإن عبارة "تم تثبيت Java" و"لا يزال Jira يفشل" صحيحان في نفس الوقت - فهما يتحدثان عن عمليات تثبيت Java مختلفة.

  1. افتح مجلد Jira bin داخل دليل التثبيت وابحث عن setenv.bat
  2. ابحث عن إعدادات الأسطر JAVA_HOME أو JRE_HOME - لاحظ المجلد الدقيق الذي يسمونه
  3. افتح هذا المجلد وتأكد من وجود مجلد bin مع وجود java.exe بداخله بالفعل
  4. قم بتشغيل تلك النسخة مباشرة: java -version من داخل المجلد bin الخاص بها، وقم بكتابة الإصدار
  5. إذا كان المجلد المسمى غير موجود، فقد وجدت الخطأ - يشير Jira إلى Java التي تم نقلها أو إزالتها
2

قم بمطابقة JDK مع إصدار Jira الخاص بك بالضبط

هذه هي الخطوة التي يخمنها الناس، والتخمين مكلف. يدعم كل إصدار من إصدارات Jira مجموعة محددة من إصدارات Java: تعمل إصدارات Jira الأقدم على Java 8 أو 11، وتتطلب الإصدارات الأحدث Java 11 أو 17، والأحدث يتطلب Java 17 أو أحدث. إن Java الجديدة جدًا تفشل بنفس القدر من الفشل الذي تواجهه Java القديمة جدًا - فالتغييرات في ملف الفئة والوحدة النمطية حقيقية وليست مزعجة.

  1. ابحث عن إصدار Jira الخاص بك - فهو موجود في تذييل أي صفحة Jira، أو في ملف إصدار التثبيت، أو في آخر عمل لك atlassian-jira.log
  2. افتح صفحة الأنظمة الأساسية المدعومة الخاصة بـ Atlassian للحصول على إصدار Jira المحدد واقرأ متطلبات Java الخاصة به
  3. قارنه بالإصدار الذي قمت بالتحقق منه في القسم السابق - يجب أن يتداخلا
  4. إذا لم يحدث ذلك، فإن الحل الصادق هو توجيه Jira إلى JDK مدعوم (تثبيت جنبًا إلى جنب إذا لزم الأمر)، وليس فرض الإصدار الحالي.
  5. تجنب Java 32 بت تمامًا - يحتاج Jira إلى JVM 64 بت لاستخدام كومة مفيدة
3

أصلح Java_HOME وتكوين الخدمة

بمجرد أن تعرف JDK الصحيح، اجعل كل مؤشر موافقًا. يعد تغيير متغير بيئة النظام فقط بمثابة نصف الإصلاح الكلاسيكي: فقد تستمر الخدمة في استخدام Java المخزنة في إعدادات الغلاف الخاصة بها، ويستمر الفشل في إصلاحك.

  1. أوقف خدمة جيرا
  2. قم بتحرير setenv.bat بحيث يقوم JAVA_HOME بتسمية مجلد JDK المدعوم - بدون إضافة bin، فقط جذر JDK
  3. تحقق من متغيرات بيئة نظام Windows أيضًا، في حالة تعيين JAVA_HOME المتعارض هناك
  4. إذا كان Jira الخاص بك يعمل كخدمة، فافتح إعدادات Java الخاصة بالخدمة باستخدام أداة تكوين خدمة Tomcat في مجلد Jira bin وتأكد من تطابق مسار Java هناك
  5. ابدأ الخدمة وشاهد سجل كاتالينا - تُظهر Java الصحيحة انتقال Jira إلى مراحل المنفذ وقاعدة البيانات
4

التعرف على التوقيعات الخاصة بفشل Java

مشاكل جافا لها حكايات. تفشل الخدمة خلال ثواني. يعرض Windows Event Viewer الخدمة أو أخطاء JVM قبل أن تبدأ سجلات Jira الخاصة. وعندما تكون السجلات موجودة، فإن عبارات مثل UnsupportedClassVersionError (Java قديمة جدًا بالنسبة للتعليمات البرمجية) أو أخطاء الوصول إلى الوحدة النمطية (Java جديدة وصارمة جدًا) تسمي عدم التطابق مباشرةً. ومع ذلك، فإن رسالة "تعذر إنشاء Java Virtual Machine" هي عادةً إعدادات الذاكرة، وليس الإصدار - الذي ينتمي إلى إصلاح الكومة، وليس هذا.

  1. التحقق من سرعة الفشل: الثواني تعني Java أو الكومة؛ الدقائق تعني مراحل لاحقة
  2. تحقق من سجل تطبيق عارض الأحداث بحثًا عن أخطاء JVM في وقت الفشل
  3. ابحث في سجل كاتالينا عن أخطاء UnsupportedClassVersionError أو java.lang بالقرب من الجزء العلوي من الفشل
🔴 قم بتغيير شيء واحد في كل مرة. تغري إصلاحات Java الأشخاص بترقية Jira وJava وبرنامج تشغيل قاعدة البيانات في فترة ما بعد الظهر. إذا نجح النظام بعد ذلك، فلن تعرف أبدًا أي تغيير يهم - وإذا فشل، فسيكون لديك ثلاثة مشتبه بهم بدلاً من واحد. أصلح مؤشر Java، وابدأ تشغيل Jira، وأكد، وبعد ذلك فقط خطط لأي ترقية - مع أخذ نسخة احتياطية من دليل Jira الرئيسي وقاعدة البيانات أولاً.

🎥 شاهد الإصلاح الكامل في الفيديو

الإصلاح الكامل لبدء تشغيل Jira، خطوة بخطوة، مع عرض الشاشات الدقيقة وخطوط السجل مباشرة.

▶️ Watch Full Video
❓ الأسئلة الشائعة (الأسئلة الشائعة)

تم تثبيت Java وتعمل بشكل جيد مع التطبيقات الأخرى. لماذا لا يزال جيرا يفشل؟

لأن Jira ربما لا يستخدم تلك Java. يتبع Jira JAVA_HOME في setenv.bat الخاص به وJava المسجل في تكوين خدمة Windows الخاص به، والذي يمكن أن يشير إلى JDK أقدم أو تمت إزالته بينما تستخدم التطبيقات الأخرى نظام Java بسعادة. تحقق من java.exe الدقيق داخل المجلد الذي يشير إليه Jira، مع تشغيل إصدار Java من هذا المجلد.

هل يجب علي ترقية Java إلى الإصدار الأحدث لإصلاح Jira

فقط إذا كانت صفحة الأنظمة الأساسية المدعومة في Atlassian لإصدار Jira الخاص بك تسرد إصدار Java هذا. لا يتم دعم الإصدار الأحدث تلقائيًا - تعمل Java الجديدة جدًا على كسر Jira بنفس الموثوقية مثل النسخة القديمة جدًا، من خلال إصدارات الفئات المتغيرة وقواعد الوحدة الأكثر صرامة. تطابق النطاق الموثق؛ لا تطارد أعلى رقم.

بدأ Jira بالفشل مباشرة بعد تحديث Java على الخادم. ماذا حدث

من المحتمل أن يستبدل التحديث أو يزيل JDK الذي يشير إليه Jira's JAVA_HOME، أو يغير النظام JAVA_HOME الذي نسخه مسؤول آخر لاحقًا في تكوين Jira. لا يتمثل الحل في استرجاع الخادم بأكمله - قم بتثبيت JDK مدعوم أو الاحتفاظ به جنبًا إلى جنب وتوجيه Jira إليه فقط، باستخدام setenv.bat وإعدادات Java الخاصة بالخدمة.

يعتمد هذا الدليل على فيديو Anshu الفني حول إصلاح Jira الذي لن يبدأ • هل أنت عالق في إحدى الخطوات؟ اسأل في تعليقات الفيديو - سوف تحصل على الرد 🙏