ایرر میسج میں جواب پہلے ہی موجود ہوتا ہے: اگر وہاں class file version 65.0 لکھا ہو تو فائل Java 21 مانگ رہی ہے۔ حساب ہمیشہ یہی ہے — نمبر میں سے 44 نکالو، Java ورژن مل جائے گا۔ لیکن نمبر سے زیادہ اہم سوال یہ ہے کہ کس کی فائل مراد ہے: اکثر مسئلہ یہ نہیں ہوتا کہ Server بہت پرانا ہے، بلکہ کوئی ایک 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

اس میں تین معلومات چھپی ہیں:

  1. com/example/PluginMain — ایرر کس نے پیدا کیا۔ اگر یہاں کسی Plugin یا Mod کا نام ہو تو مطلب ہے: یہی ایک فائل فٹ نہیں بیٹھتی، Server خود ٹھیک ہے۔
  2. class file version 65.0 — کیا درکار ہے: 65 − 44 = Java 21۔
  3. only recognizes … up to 61.0 — کیا چل رہا ہے: 61 − 44 = Java 17۔

سادہ مطلب: Java 21 کے لیے بنایا گیا Plugin ایسے Server پر رکھا ہے جو Java 17 کے ساتھ چل رہا ہے۔

تبدیلی کا جدول

class file version Java-Version
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 specification سے آتے ہیں۔ 44 کا فرق Java 1.0 سے مستقل ہے — اس لیے تم آئندہ آنے والا کوئی بھی ورژن خود حساب کر سکتے ہو، جدول بڑھائے بغیر۔

یاد رکھو: Java runtime ہمیشہ تمام پرانے class file ورژنز سمجھتا ہے، لیکن کبھی کوئی نیا نہیں۔ اسی لیے Java 8 Plugin Java 21 پر آرام سے چل جاتا ہے، مگر الٹ کبھی نہیں۔

کس Minecraft ورژن کو کون سا Java چاہیے؟

Minecraft-Version Benötigtes 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

ہمارے ہاں تمہیں یہ خود سیٹ نہیں کرنا پڑتا۔ ہم تمہارے Server کے Minecraft ورژن سے runtime نکالتے ہیں اور اسے خودکار طور پر سیٹ کر دیتے ہیں۔ اگر تم 1.21 آرڈر کرتے ہو تو تمہیں Java 21 ملتا ہے، بغیر کوئی سوئچ تلاش کیے۔

Leaf اور Leaves جیسے Server-Forks کے لیے ہم ہر Release کے مطابق الگ سے بالکل درست mapping رکھتے ہیں، عمومی اصول کو بس نقل نہیں کرتے۔ وجہ یہ ہے: Fork Vanilla requirement سے مختلف ہو سکتا ہے، اور خوش فہمی پر مبنی اندازہ عین اسی وقت غلط ہو گا جب درستگی سب سے ضروری ہو۔ اگر کسی combination کے لیے مناسب Java نہ ملے تو ہم عمل جان بوجھ کر روک دیتے ہیں، بجائے اس کے کہ بہت کم runtime کے ساتھ Server شروع کریں — ایسا Server جو غلط شروع ہی نہ ہو، اس Server سے آسانی سے ٹھیک ہوتا ہے جو آدھا چل رہا ہو۔

سب سے عام حالت: مسئلہ Plugin کا ہے، Server کا نہیں

اگر تمہارا Server ابھی تک چل رہا تھا اور فائل شامل کرنے کے بعد ایرر آیا تو بات واضح ہے۔ طریقہ:

  1. میسج سے class name نوٹ کرو۔ یہ تقریباً ہمیشہ project کا نام بتاتا ہے۔
  2. Provider کے پاس مناسب build variant تلاش کرو۔ بہت سے Plugins Java 17 اور Java 21 کے لیے الگ downloads دیتے ہیں، اکثر -java17 suffix کے ساتھ یا الگ release branch کے طور پر۔ سب سے نئی فائل لازماً درست نہیں ہوتی۔
  3. اگر مناسب variant موجود نہیں تو تمہیں نیا Minecraft ورژن چاہیے — کیونکہ وہی نیا runtime ساتھ لاتا ہے۔ Version بدلتے وقت world نہ کھونے کا طریقہ Minecraft-Server-Version wechseln میں ہے۔
  4. Plugin فی الحال ہٹا دو اگر Server کو فوری چلانا ضروری ہے۔ Plugins صاف طریقے سے add اور remove کرنے کا طریقہ Minecraft-Mods und Plugins installieren دکھاتا ہے۔

دوسری حالت: Java بہت نیا ہے

یہ حالت کم سمجھائی جاتی ہے، مگر باقاعدگی سے آتی ہے۔ پرانے Forge-Modpacks — کلاسک مثال 1.12.2 ہے — Java 8 کے لیے بنے ہوتے ہیں۔ Java 21 پر یہ ناکام ہوتے ہیں، مگر عموماً UnsupportedClassVersionError کے ساتھ نہیں، بلکہ missing internal classes یا rejected startup parameters کے میسجز کے ساتھ۔

نشانی: Pack پہلے چلتا تھا، یا دوسروں کے ہاں چل رہا ہے، اور تمہارا Server بہت پرانا Minecraft ورژن بتاتا ہے۔ حل پھر نیا Java نہیں، بلکہ Panel میں Pack سے متعلق Minecraft ورژن ہے — اس سے ہم مناسب پرانا runtime سیٹ کرتے ہیں۔

صاف بات: ہماری automatic correction اس حالت میں کام نہیں کرتی۔ یہ صرف “بہت پرانا” والی سمت میں درست کرتی ہے، یعنی جب Server کو موجودہ runtime سے زیادہ نیا Java چاہیے ہو۔ بہت نیا Java جان بوجھ کر drift نہیں مانا جاتا — ورنہ جس customer نے قصداً پرانا runtime چنا ہو، وہ خودکار طور پر اسے دوبارہ کھو دے گا۔

ہم خودکار طور پر کیا سنبھالتے ہیں

  • آرڈر سے ہی مناسب runtime۔ Java ورژن Minecraft ورژن کے مطابق ہوتا ہے، بغیر setting کے۔
  • Version change پر correction۔ اگر تم ایسے ورژن پر جاتے ہو جسے زیادہ نیا Java چاہیے، runtime ساتھ update ہو جاتا ہے۔
  • Boot log حساب سے زیادہ معتبر ہے۔ اگر تمہارا Server start کے وقت خود کوئی مطلوبہ Java ورژن بتاتا ہے جو چلتے runtime سے زیادہ ہے، تو ہم اسی measurement کی بنیاد پر درست کرتے ہیں — ordered version سے نکالی گئی inference پر نہیں۔ Server کا اپنے بارے میں بیان کسی بھی جدول سے زیادہ قابل اعتماد ہے۔
  • Custom images untouched رہتی ہیں۔ اگر تمہارا Server تمہارے اپنے منتخب runtime پر چل رہا ہے تو ہم دخل نہیں دیتے۔
  • آدھا صحیح چلانے کے بجائے fail-closed۔ اگر کسی combination کے لیے مناسب Java موجود نہ ہو تو ہم روک دیتے ہیں اور اطلاع دیتے ہیں، غلط runtime شروع نہیں کرتے۔

Troubleshooting

Symptom Prüfung Lösung
class file version 65.0 بتایا گیا، class name Plugin ہے کیا Server add کرنے سے پہلے چل رہا تھا؟ اپنی MC-Version کے لیے Plugin build لو
Server start پر فوراً ایرر، کوئی Plugin نہیں بتایا گیا کون سا Minecraft-Version چل رہا ہے؟ Version اور runtime کو ایک سطح پر لاؤ
پرانا 1.12.2-Modpack شروع نہیں ہوتا کیا log missing internal classes بتاتا ہے؟ Java بہت نیا ہے — مناسب MC-Version چنو
Version change کے بعد ایرر کیا یہ change کے فوراً بعد آیا؟ Restart کا انتظار کرو؛ اگر برقرار رہے تو مکمل لائن کے ساتھ Support سے رابطہ کرو
Plugin load ہوتا ہے، مگر functions غائب ہیں کیا log میں error کے بجائے warning ہے؟ وجہ کچھ اور ہے — Java-Version نہیں

FAQ

کیا میں Java-Version خود بدل سکتا ہوں؟

ہمارے ہاں اس کی ضرورت نہیں: یہ تمہارے Server کے Minecraft ورژن سے خود نکلتا ہے۔ اگر تمہیں دوسرا runtime چاہیے تو صحیح راستہ Minecraft-Version بدلنا ہے — پھر پوری environment آپس میں match کرتی ہے۔

کیا نیا Java ہمیشہ بہتر ہوتا ہے؟

نہیں۔ Minecraft کے لیے required version عملاً ایک practical upper limit بھی ہے: Server core، Mods اور Plugins اسی کے مطابق tuned ہوتے ہیں۔ صرف اندازے سے زیادہ نئے runtime پر jump کرنے کا فائدہ نہیں، اور یہ پرانے Mods توڑ دیتا ہے۔

میرا Plugin local پر کیوں چلتا ہے، Server پر کیوں نہیں؟

کیونکہ تمہاری local Java installation Server والی installation سے نئی ہو سکتی ہے۔ فیصلہ کن چیز Server پر runtime ہے، تمہارے computer والا نہیں۔

مجھے کیسے پتہ چلے کہ میرا Server ابھی کس Java کے ساتھ چل رہا ہے؟

میسج خود بتاتا ہے: only recognizes class file versions up to 61.0 کا مطلب Java 17 ہے۔ اگر error message نہ ہو تو Server start کی پہلی console lines میں Java-Version لکھی ہوتی ہے۔

کیا Java change کے بعد مجھے اپنی world دوبارہ بنانی پڑے گی؟

نہیں۔ runtime صرف execution کو متاثر کرتا ہے، world format کو نہیں۔ البتہ Minecraft-Version بدلنے سے world format بدل سکتا ہے — اس لیے پہلے backup بنا لو۔

اگلے قدم

اگر Server دوبارہ چل رہا ہے مگر slow ہے تو Minecraft-Server laggt: Watchdog-Timeout beheben مدد کرے گا۔ اگر RAM Modpack size کے مطابق نہیں تو Minecraft-RAM-Rechner ضرورت calculate کر دیتا ہے۔

تم ایسا Server ڈھونڈ رہے ہو جس پر Java-Version خودکار طور پر game version کے مطابق ہو؟ Minecraft-Server mieten پر تمہیں tariffs ملیں گے۔

ذرائع اور test bench

Test bench: 24 اگست 2026۔ نئے Minecraft versions نئے Java requirements لا سکتے ہیں؛ linked sources ہر وقت موجودہ حالت دکھاتے ہیں۔