رسالة الخطأ تحتوي على الإجابة بالفعل: إذا ظهر فيها class file version 65.0، فهذا يعني أن الملف يحتاج إلى Java 21. الحساب دائمًا نفسه — الرقم ناقص 44 يعطي إصدار Java. لكن الأهم من الرقم هو سؤال: ملف من المقصود؟ في أغلب الحالات لا يكون الخادم قديمًا، بل Plugin واحد فقط أحدث من اللازم.
قراءة الرسالة
سطر نموذجي يبدو هكذا:
java.lang.UnsupportedClassVersionError: com/example/PluginMain has been compiled by a more
recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime
only recognizes class file versions up to 61.0
فيه ثلاث معلومات:
com/example/PluginMain— من الذي يسبب الخطأ. ظهور اسم Plugin أو Mod هنا يعني: هذا الملف وحده غير مناسب، والخادم نفسه سليم.class file version 65.0— ما المطلوب: 65 − 44 = Java 21.only recognizes … up to 61.0— ما الذي يعمل حاليًا: 61 − 44 = Java 17.
بمعنى آخر: Plugin مبني لـ Java 21 موجود على خادم يعمل بـ Java 17.
جدول التحويل
| class file version | إصدار Java |
|---|---|
| 52.0 | Java 8 |
| 55.0 | Java 11 |
| 60.0 | Java 16 |
| 61.0 | Java 17 |
| 65.0 | Java 21 |
| 69.0 | Java 25 |
الأرقام مأخوذة من مواصفة JVM الرسمية. الفارق 44 ثابت هناك منذ Java 1.0 — لذلك يمكنك حساب أي إصدار مستقبلي بنفسك دون توسيع الجدول.
تذكّر: بيئة تشغيل Java تفهم دائمًا كل إصدارات ملفات الكلاسات الأقدم، لكنها لا تفهم أبدًا إصدارًا أحدث. لذلك يعمل Plugin مبني لـ Java 8 بلا مشكلة تحت Java 21، لكن العكس لا يحدث أبدًا.
أي إصدار Java تحتاجه كل نسخة Minecraft؟
| إصدار Minecraft | Java المطلوب |
|---|---|
| حتى 1.16.5 | Java 8 |
| 1.17 – 1.17.1 | Java 16 (عمليًا Java 17) |
| 1.18 – 1.20.4 | Java 17 |
| من 1.20.5 | Java 21 |
| من 26.0 | Java 25 |
عندنا لا تحتاج إلى ضبط ذلك. نحن نستنتج بيئة التشغيل من نسخة Minecraft الخاصة بخادمك ونضبطها تلقائيًا. إذا طلبت 1.21، تحصل على Java 21 دون البحث عن زر إعداد.
بالنسبة إلى Server-Forks مثل Leaf و Leaves، نحافظ أيضًا على ربط دقيق لكل Release بدل الاعتماد على القاعدة العامة. السبب: قد يختلف Fork عن متطلبات Vanilla، والافتراض المتفائل سيخطئ تحديدًا عندما يكون الأمر مهمًا. إذا لم نجد Java مناسبًا لتركيبة معينة، نوقف العملية عمدًا بدل تشغيل بيئة أقل من المطلوب — خادم لا يبدأ أصلًا بشكل خاطئ أسهل في إصلاحه من خادم يعمل نصف عمل.
الحالة الأكثر شيوعًا: Plugin، وليس الخادم
إذا كان خادمك يعمل قبل قليل وظهر الخطأ بعد إضافة ملف، فالأمر واضح. اتبع الآتي:
- دوّن اسم الكلاس من الرسالة. غالبًا ما يشير مباشرة إلى المشروع.
- ابحث عند المزوّد عن Build مناسب. كثير من Plugins توفر تنزيلات منفصلة لـ Java 17 و Java 21، غالبًا مع اللاحقة
-java17أو كفرع Release مستقل. الملف الأحدث ليس بالضرورة الصحيح. - إذا لم توجد نسخة مناسبة، فأنت تحتاج إلى إصدار Minecraft أحدث — لأنه هو الذي يجلب بيئة التشغيل الأحدث. طريقة تغيير الإصدار دون فقدان العالم موجودة في تغيير إصدار خادم Minecraft.
- أزل Plugin مؤقتًا إذا كان الخادم يجب أن يعمل بسرعة. يوضح تثبيت Mods و Plugins في Minecraft كيف تضيف Plugins وتزيلها بشكل نظيف.
الحالة الأخرى: Java أحدث من اللازم
هذه الحالة نادرًا ما تُشرح، لكنها تحدث بانتظام. Modpacks القديمة المبنية على Forge — والمثال الكلاسيكي هو 1.12.2 — مبنية لـ Java 8. تحت Java 21 تفشل، لكن غالبًا ليس برسالة UnsupportedClassVersionError، بل برسائل عن كلاسات داخلية مفقودة أو معاملات تشغيل مرفوضة.
العلامة: كان Pack يعمل سابقًا، أو يعمل عند الآخرين، وخادمك يذكر إصدار Minecraft قديمًا جدًا. الحل هنا ليس Java أحدث، بل اختيار إصدار Minecraft الذي ينتمي إليه Pack في اللوحة — وبذلك نضبط بيئة التشغيل الأقدم المناسبة.
تنبيه صريح: التصحيح التلقائي لدينا لا يتدخل في هذه الحالة. هو يصلح فقط باتجاه "قديم جدًا"، أي عندما يحتاج الخادم إلى Java أحدث من المشغّل الحالي. Java الأحدث من اللازم لا نعتبره Drift عن قصد — وإلا فإن العميل الذي اختار بيئة تشغيل أقدم عمدًا سيفقدها تلقائيًا مرة أخرى.
ما نتولاه تلقائيًا
- بيئة التشغيل المناسبة من لحظة الطلب. إصدار Java يتبع إصدار Minecraft دون إعداد.
- التصحيح عند تغيير الإصدار. إذا انتقلت إلى إصدار يحتاج Java أعلى، يتم نقل بيئة التشغيل معه.
- Boot-Log أقوى من الحساب. إذا ذكر خادمك عند الإقلاع إصدار Java مطلوبًا أعلى من المشغّل الحالي، نصحح بناءً على هذا القياس — لا بناءً على الاستنتاج من الإصدار المطلوب. تصريح الخادم عن نفسه أوثق من أي جدول.
- الصور المخصصة تبقى كما هي. إذا كان خادمك يعمل على بيئة تشغيل اخترتها بنفسك، لا نتدخل.
- Fail-closed بدل نصف صحيح. إذا لم يوجد Java مناسب لتركيبة ما، نوقف العملية ونبلغك بدل تشغيل بيئة خاطئة.
Troubleshooting
| العرض | الفحص | الحل |
|---|---|---|
ذُكر class file version 65.0 واسم الكلاس Plugin |
هل كان الخادم يعمل قبل الإضافة؟ | حمّل Plugin-Build المناسب لإصدار MC لديك |
| خطأ مباشرة عند بدء الخادم، ولا يُذكر Plugin | أي إصدار Minecraft يعمل؟ | وحّد الإصدار وبيئة التشغيل |
| Modpack قديم 1.12.2 لا يبدأ | هل يذكر Log كلاسات داخلية مفقودة؟ | Java أحدث من اللازم — اختر إصدار MC المناسب |
| خطأ بعد تغيير الإصدار | هل ظهر مباشرة بعد التغيير؟ | انتظر إعادة التشغيل؛ إذا بقي، تواصل مع الدعم وأرسل السطر الكامل |
| Plugin يحمّل، لكن الوظائف ناقصة | هل يوجد في Log تحذير بدل خطأ؟ | سبب آخر — ليس إصدار Java |
FAQ
هل يمكنني تغيير إصدار Java بنفسي؟
عندنا لا تحتاج إلى ذلك: يتم تحديده من إصدار Minecraft الخاص بخادمك. إذا احتجت بيئة تشغيل أخرى، فالطريقة الصحيحة هي تغيير إصدار Minecraft — عندها تتطابق البيئة كلها معًا.
هل Java الأحدث أفضل دائمًا؟
لا. بالنسبة إلى Minecraft، الإصدار المطلوب هو أيضًا حد عملي أعلى: نواة الخادم و Mods و Plugins مضبوطة عليه. القفز إلى بيئة تشغيل أعلى "احتياطًا" لا يجلب فائدة ويكسر Mods القديمة.
لماذا يعمل Plugin محليًا عندي، لكنه لا يعمل على الخادم؟
لأن تثبيت Java المحلي لديك قد يكون أحدث من الموجود على الخادم. المهم هو بيئة التشغيل على الخادم، وليس الموجودة على جهازك.
كيف أعرف بأي Java يعمل خادمي حاليًا؟
الرسالة تخبرك: only recognizes class file versions up to 61.0 تعني Java 17. بدون رسالة خطأ، يذكر بدء الخادم إصدار Java في أول أسطر الكونسول.
هل يجب أن أنشئ عالمي من جديد بعد تغيير Java؟
لا. بيئة التشغيل تؤثر فقط على التنفيذ، وليس على صيغة العالم. أما تغيير إصدار Minecraft فقد يغيّر صيغة العالم — لذلك أنشئ Backup مسبقًا.
الخطوات التالية
إذا عاد الخادم للعمل لكنه بطيء، فدليل خادم Minecraft يتأخر: إصلاح Watchdog-Timeout يساعدك. وإذا لم تناسب الذاكرة حجم Modpack، يحسب حاسبة RAM لـ Minecraft الحاجة لك.
هل تبحث عن خادم يتطابق فيه إصدار Java تلقائيًا مع إصدار اللعبة؟ في استئجار خادم Minecraft تجد الباقات.
المصادر ومنصة الاختبار
- متطلبات Java لكل إصدار Minecraft: Minecraft Wiki — Server/Requirements. يذكر صراحة Java 16 بدءًا من 1.17، و Java 17 بدءًا من 1.18، و Java 21 بدءًا من 1.20.5.
- ربط إصدارات class-file: Oracle — The Java Virtual Machine Specification, Java SE 21, Table 4.1-A. يثبت 52 = Java 8، و55 = Java 11، و60 = Java 16، و61 = Java 17، و65 = Java 21، وكذلك القاعدة التي تقول إن JVM يدعم فقط الإصدارات المدرجة ولا يدعم أي إصدارات أعلى.
- Java 25: Oracle — The Java Virtual Machine Specification, Java SE 25, Table 4.1-A. يثبت Major 69.
منصة الاختبار: 24 أغسطس 2026. قد تجلب إصدارات Minecraft الجديدة متطلبات Java جديدة؛ المصادر المرتبطة تمثل الحالة الحالية لكل منها.