Hata mesajı cevabı zaten içerir: Orada class file version 65.0 yazıyorsa, dosya Java 21 ister. Hesap her zaman aynıdır: sayı eksi 44, Java sürümünü verir. Ama sayıdan daha önemli olan soru, kimin dosyasından bahsedildiğidir: Çoğu durumda sunucu eski değildir; tek bir eklenti fazla yenidir.

Mesajı okumak

Tipik bir satır şöyle görünür:

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

Bunun içinde üç bilgi vardır:

  1. com/example/PluginMain — hataya kimin neden olduğu. Burada bir eklenti veya mod adı varsa şu anlama gelir: Bu tek dosya uyumsuzdur, sunucunun kendisi sorunlu değildir.
  2. class file version 65.0 — ne istendiği: 65 − 44 = Java 21.
  3. only recognizes … up to 61.0 — neyin çalıştığı: 61 − 44 = Java 17.

Çevirisi: Java 21 için oluşturulmuş bir eklenti, Java 17 ile çalışan bir sunucuda bulunuyor.

Dönüştürme tablosu

class file version Java sürümü
52.0 Java 8
55.0 Java 11
60.0 Java 16
61.0 Java 17
65.0 Java 21
69.0 Java 25

Bu sayılar resmi JVM spesifikasyonundan gelir. 44 farkı Java 1.0'dan beri orada sabittir. Yani tabloyu genişletmeden gelecekteki her sürümü kendin hesaplayabilirsin.

Aklında tut: Bir Java çalışma zamanı her zaman tüm daha eski sınıf dosyası sürümlerini anlar, ama asla daha yeni birini anlamaz. Bu yüzden bir Java 8 eklentisi Java 21 altında sorunsuz çalışır, tersi ise asla çalışmaz.

Hangi Minecraft sürümü hangi Java sürümüne ihtiyaç duyar?

Minecraft sürümü Gerekli Java
1.16.5'e kadar Java 8
1.17 – 1.17.1 Java 16 (pratikte Java 17)
1.18 – 1.20.4 Java 17
1.20.5'ten itibaren Java 21
26.0'dan itibaren Java 25

Bizde bunu ayarlaman gerekmez. Çalışma zamanını sunucunun Minecraft sürümünden çıkarır ve otomatik olarak ayarlarız. 1.21 sipariş edersen, herhangi bir anahtar aramadan Java 21 alırsın.

Leaf ve Leaves gibi sunucu fork'ları için genel kuralı devralmak yerine her sürüm için ayrıca kesin bir eşleştirme tutarız. Sebep şu: Bir fork Vanilla gereksiniminden sapabilir ve iyimser bir varsayım tam da önemli olduğu anda yanlış sonuç verebilir. Bir kombinasyon için uygun Java bulunamazsa, fazla düşük bir çalışma zamanı başlatmak yerine işlemi bilinçli olarak durdururuz. Baştan yanlış başlamayan bir sunucuyu düzeltmek, yarım çalışan bir sunucuyu düzeltmekten daha kolaydır.

En sık görülen durum: sunucu değil, bir eklenti

Sunucun az önceye kadar çalışıyorsa ve hata bir dosya ekledikten sonra ortaya çıktıysa durum nettir. İzlenecek yol:

  1. Mesajdaki sınıf adını not et. Neredeyse her zaman projeyi belirtir.
  2. Sağlayıcıda uygun build varyantını ara. Birçok eklenti Java 17 ve Java 21 için ayrı indirmeler sunar; çoğu zaman -java17 ekiyle veya ayrı bir release dalı olarak. En yeni dosya otomatik olarak doğru dosya değildir.
  3. Uygun bir varyant yoksa, daha yeni bir Minecraft sürümüne ihtiyacın vardır, çünkü yeni çalışma zamanı ancak onunla gelir. Dünyayı kaybetmeden sürümü nasıl değiştireceğin Minecraft sunucu sürümünü değiştirme içinde anlatılır.
  4. Sunucunun acilen çalışması gerekiyorsa eklentiyi şimdilik kaldır. Eklentileri temiz şekilde nasıl ekleyip kaldıracağını Minecraft modları ve eklentileri kurma gösterir.

Diğer durum: Java fazla yeni

Bu durum nadiren açıklanır, ama düzenli olarak görülür. Eski Forge modpack'leri, klasik örnek 1.12.2'dir, Java 8 için oluşturulmuştur. Java 21 altında başarısız olurlar; ancak çoğunlukla UnsupportedClassVersionError ile değil, eksik dahili sınıflar veya reddedilen başlatma parametreleriyle ilgili mesajlarla.

Belirti: Paket daha önce çalışıyordu ya da başkalarında çalışıyor ve sunucun çok eski bir Minecraft sürümü söylüyor. Çözüm o zaman daha yeni Java değildir; panelde pakete ait Minecraft sürümünü seçmektir. Böylece uygun eski çalışma zamanını ayarlarız.

Dürüst not: Otomatik düzeltmemiz bu durumda devreye girmez. Yalnızca “fazla eski” yönünü düzeltir; yani sunucu, çalışan Java'dan daha yeni bir Java'ya ihtiyaç duyuyorsa. Fazla yeni Java bilinçli olarak sapma sayılmaz. Aksi halde, özellikle eski bir çalışma zamanı seçmiş bir müşteri onu otomatik olarak tekrar kaybederdi.

Otomatik olarak üstlendiklerimiz

  • Siparişten itibaren uygun çalışma zamanı. Java sürümü, ayar gerektirmeden Minecraft sürümünü takip eder.
  • Sürüm değişiminde düzeltme. Daha yüksek Java ihtiyacı olan bir sürüme geçersen, çalışma zamanı da birlikte güncellenir.
  • Boot log hesabın önüne geçer. Sunucun başlangıçta çalışan sürümden daha yüksek bir Java sürümü gerektiğini kendisi söylüyorsa, düzeltmeyi sipariş edilen sürümden türetilen bilgiye göre değil, bu ölçüme göre yaparız. Sunucunun kendi hakkında verdiği bilgi, her tablodan daha güvenilirdir.
  • Özel image'lara dokunulmaz. Sunucun kendi seçtiğin bir çalışma zamanı üzerinde çalışıyorsa müdahale etmeyiz.
  • Yarım doğru yerine fail-closed. Bir kombinasyon için uygun Java yoksa, yanlış bir çalışma zamanı başlatmak yerine durur ve bunu bildiririz.

Sorun giderme

Belirti Kontrol Çözüm
class file version 65.0 belirtiliyor, sınıf adı bir eklenti Sunucu eklemeden önce çalışıyor muydu? MC sürümün için eklenti build'ini indir
Hata doğrudan sunucu başlangıcında, eklenti belirtilmiyor Hangi Minecraft sürümü çalışıyor? Sürümü ve çalışma zamanını eşitle
Eski 1.12.2 modpack başlamıyor Log eksik dahili sınıflar söylüyor mu? Java fazla yeni; uygun MC sürümünü seç
Sürüm değişiminden sonra hata Değişimden hemen sonra mı ortaya çıktı? Yeniden başlatmayı bekle; devam ederse tam satırla birlikte destekle iletişime geç
Eklenti yükleniyor ama işlevler eksik Logda hata yerine uyarı mı var? Başka bir neden; Java sürümü değil

FAQ

Java sürümünü kendim değiştirebilir miyim?

Bizde buna gerek yok: Sunucunun Minecraft sürümünden belirlenir. Başka bir çalışma zamanına ihtiyacın varsa doğru yol Minecraft sürümünü değiştirmektir. Böylece tüm ortam birbiriyle uyumlu olur.

Daha yeni Java her zaman daha mı iyidir?

Hayır. Minecraft için istenen sürüm aynı zamanda pratik bir üst sınırdır: Sunucu çekirdeği, modlar ve eklentiler ona göre ayarlanmıştır. “Ne olur ne olmaz” diye daha yüksek bir çalışma zamanına geçmek avantaj sağlamaz ve eski modları bozar.

Eklentim yerelde çalışıyor ama sunucuda neden çalışmıyor?

Çünkü yerel Java kurulumun sunucudakinden daha yeni olabilir. Belirleyici olan sunucudaki çalışma zamanıdır, kendi bilgisayarındaki değil.

Sunucumun şu anda hangi Java ile çalıştığını nasıl anlarım?

Mesaj bunu sana söyler: only recognizes class file versions up to 61.0 Java 17 anlamına gelir. Hata mesajı yoksa, sunucu başlangıcı ilk konsol satırlarında Java sürümünü belirtir.

Java değişiminden sonra dünyamı yeniden oluşturmam gerekir mi?

Hayır. Çalışma zamanı yalnızca çalıştırmayı etkiler, dünya formatını değil. Buna karşılık Minecraft sürümünü değiştirmek dünya formatını değiştirebilir. Bunun için önceden yedek oluştur.

Sonraki adımlar

Sunucu tekrar çalışıyor ama yavaşsa, Minecraft sunucusu lag yapıyor: Watchdog timeout düzeltme yardımcı olur. RAM modpack boyutuna uymuyorsa, Minecraft RAM hesaplayıcı ihtiyacı hesaplar.

Java sürümünün otomatik olarak oyun sürümüne uyduğu bir sunucu mu arıyorsun? Tarifeleri Minecraft sunucusu kirala sayfasında bulabilirsin.

Kaynaklar ve test durumu

Test durumu: 24 Ağustos 2026. Yeni Minecraft sürümleri yeni Java gereksinimleri getirebilir; bağlantılı kaynaklar her biri için güncel durumu gösterir.