Minecraft sunucusunda UnsupportedClassVersionError hatası, çalıştırdığınız Java sürümünün sunucu jar’ı için yetersiz olduğunu söyler. Jar dosyası daha yeni bir Java ile derlenmiştir ve eski bir çalışma zamanı onu okuyamaz. Hata mesajının içinde hem jar’ın gerektirdiği sürüm hem sizin kullandığınız sürüm sayısal olarak yazar; bu iki numarayı okumak çözümü tek adıma indirir.
11 Ağustos 2026 itibarıyla güncel kararlı sürüm Minecraft 26.2 “Chaos Cubed” ve Java 25 gerektiriyor. Eski sürümlerde sunucu işletenler için tam eşleşme tablosunu, class file version karşılıklarını ve aynı makinede birden fazla Java sürümünü yönetme yöntemlerini aşağıda bulacaksınız.
Hatanın Birebir Metni#
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled
by a more recent version of the Java Runtime (class file version 69.0),
this version of the Java Runtime only recognizes class file versions up to 65.0
Exception in thread "main" java.lang.UnsupportedClassVersionError:
io/papermc/paperclip/Paperclip has been compiled by a more recent version of the Java Runtime
Eklenti tarafında da aynı hata görülebilir; bu durumda sunucu açılır ama eklenti yüklenmez:
[15:12:44] [Server thread/ERROR]: Could not load 'plugins/OrnekEklenti.jar' in folder 'plugins'
java.lang.UnsupportedClassVersionError: com/ornek/eklenti/Main has been compiled by
a more recent version of the Java Runtime (class file version 69.0)
Class File Version Karşılık Tablosu#
| class file version | Java sürümü | Hangi Minecraft için | Durum |
|---|---|---|---|
| 70.0 | Java 26 | — | LTS değil, önerilmez |
| 69.0 | Java 25 | 26.1 ve sonrası (26.2 dahil) | Önerilen LTS |
| 65.0 | Java 21 | 1.20.5 – 1.21.11 | Eski hat LTS |
| 61.0 | Java 17 | 1.17 – 1.20.4 | Eski hat LTS |
| 60.0 | Java 16 | 1.17 (Java 17 de çalışır) | Geçiş sürümü |
| 52.0 | Java 8 | 1.16.5 ve öncesi (1.12.2, 1.8.9) | Eskimiş ama gerekli |
Minecraft – Java Eşleşme Tablosu#
| Minecraft sürümü | Gerekli Java | Protokol | Not |
|---|---|---|---|
| 26.2 “Chaos Cubed” | Java 25 | 776 | Güncel kararlı sürüm |
| 26.1 / 26.1.1 / 26.1.2 | Java 25 | 775 | Unobfuscation ile geldi |
| 1.20.5 – 1.21.11 | Java 21 | Sürüme özel | 26.x jar’ı bu Java ile çalışmaz |
| 1.17 – 1.20.4 | Java 17 | Sürüme özel | 1.17 teknik olarak Java 16 ister |
| 1.16.5 ve öncesi | Java 8 | Sürüme özel | 1.12.2 modpackleri, 1.8.9 PvP |
Adım Adım Çözüm#
-
Mevcut Java sürümünüzü görün#
java -version which java readlink -f $(which java)java -version where.exe java $env:JAVA_HOMEÇıktıda “openjdk version 21…” görüyor ve 26.2 sunucusu çalıştırıyorsanız hatanın nedeni bulunmuştur.
-
Doğru JDK’yı indirin#
-
Kurulumu doğrulayın#
java -version # openjdk version "25.0.4" 2026-07-15 LTS # OpenJDK Runtime Environment Temurin-25.0.4+7Sürüm hâlâ eski görünüyorsa PATH değişkeni eski kuruluma işaret ediyordur. Bir sonraki adıma geçin.
-
Varsayılan Java sürümünü değiştirin#
Linux tarafında birden fazla kurulu sürüm arasında geçiş:
sudo update-alternatives --config java update-alternatives --list java # /usr/lib/jvm/temurin-25-jdk-amd64/bin/java # /usr/lib/jvm/temurin-21-jdk-amd64/bin/javaWindows tarafında JAVA_HOME ve PATH ayarları “Gelişmiş Sistem Ayarları” → “Ortam Değişkenleri” üzerinden yapılır. Ayrıntılı anlatım Windows Java kurulumu sayfasında, Linux tarafı Linux Java kurulumu sayfasında var.
-
Betikte Java’nın tam yolunu yazın#
Sistem varsayılanına güvenmek yerine betikte hangi Java’yı kullandığınızı açıkça belirtmek en güvenilir yöntemdir. Böylece aynı makinede farklı sürümlerde birden fazla sunucu çalıştırabilirsiniz.
#!/bin/bash cd "$(dirname "$0")" || exit 1 JAVA=/usr/lib/jvm/temurin-25-jdk-amd64/bin/java "$JAVA" -Xms14G -Xmx14G \ -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \ -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \ -jar paper.jar nogui@echo off cd /d "%~dp0" set JAVA="C:\Program Files\Eclipse Adoptium\jdk-25.0.4.7-hotspot\bin\java.exe" %JAVA% -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled ^ -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions ^ -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -jar paper.jar nogui pause
Aynı Makinede Birden Fazla Java Sürümü#
Bir 1.12.2 modpack sunucusu ile bir 26.2 sunucusunu aynı makinede çalıştırmak yaygın bir senaryodur. Bu durumda sistem varsayılanını değiştirmek yerine her sunucunun kendi Java yolunu tanımlaması gerekir.
ls /usr/lib/jvm/
# temurin-8-jdk-amd64 temurin-17-jdk-amd64 temurin-21-jdk-amd64 temurin-25-jdk-amd64
# 1.12.2 sunucusu
/usr/lib/jvm/temurin-8-jdk-amd64/bin/java -Xms14G -Xmx14G -jar forge-1.12.2.jar nogui
# 26.2 sunucusu
/usr/lib/jvm/temurin-25-jdk-amd64/bin/java -Xms14G -Xmx14G -jar paper.jar nogui
systemd servisi kullanıyorsanız ExecStart satırına tam yolu yazın:
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft-26
ExecStart=/usr/lib/jvm/temurin-25-jdk-amd64/bin/java -Xms14G -Xmx14G -jar paper.jar nogui
Restart=on-failure
Servis oluşturma ayrıntıları systemd servisi sayfasında yer alıyor.
Eklenti Kaynaklı Sürüm Hataları#
Sunucu açılıyor ama tek bir eklenti yüklenmiyorsa hata o eklentinin derlendiği Java sürümündendir. İki olasılık vardır:
Eklenti daha yeni Java istiyor#
Sunucu Java 21 ile çalışıyor, eklenti Java 25 ile derlenmiş. Çözüm sunucuyu Java 25’e taşımaktır; zaten 26.x kullanıyorsanız bunu yapmış olmanız gerekir.
Eklenti çok eski#
Java 8 ile derlenmiş eski bir eklenti yeni Java’da genelde çalışır; sorun Java değil API uyumluluğudur. 26.1 unobfuscation nedeniyle NMS kullanan eklentiler yeniden derlenmeden çalışmaz.
26.x’e geçerken eklentilerin uyumluluğunu kontrol etme yöntemi sürüm uyuşmazlığı sayfasında, eklenti kurulumu plugin kurulum rehberinde anlatıldı.
Java Sürümünü Değiştirdikten Sonra#
Yeni Java sürümüne geçtiğinizde JVM bayraklarınızı da gözden geçirin. Bazı eski bayraklar yeni sürümlerde kaldırılmış olabilir ve sunucu açılmayı reddeder.
# Java 25'te obsolete veya kaldırılmış bayraklara örnek
-XX:+ZGenerational # JEP 490 ile obsolete, kullanmayın
-XX:+UseConcMarkSweepGC # kaldırıldı
-XX:+UseParNewGC # kaldırıldı
Bayrak seçimi ve heap boyutlandırma için RAM ayarları ve JVM flag rehberine bakın. Hangi Java sürümünü seçeceğinize dair genel karşılaştırma hangi Java sürümü gerekir sayfasındadır.
Doğrulama Kontrol Listesi#
- 1. Hata numarası
- Mesajdaki class file version numarasını tabloyla eşleştirin.
- 2. Kurulu sürüm
java -versionçıktısı hedef sürümü gösteriyor mu?- 3. Doğru yol
- Betikte Java’nın tam yolu yazılı mı, yoksa sistem varsayılanına mı güveniliyor?
- 4. Servis dosyası
- systemd veya Windows servisi eski Java’yı çağırıyor olabilir.
- 5. Bayraklar
- Yeni sürümde kaldırılmış bir bayrak kullanıyor musunuz?
İlgili Hata Sayfaları#
- Unable to access jarfile hatası — jar dosyası hiç bulunamıyorsa.
- Outdated server / client hatası — protokol uyuşmazlığında.
- Crash report okuma — açılış sırasındaki diğer hatalarda.
- Tüm Minecraft sunucu hataları ve çözümleri — pillar rehber.
Özetle#
UnsupportedClassVersionError hatası, jar dosyasının sizin Java sürümünüzden daha yeni bir sürümle derlendiğini söyler ve çözümü tek adımlıdır: mesajdaki class file version numarasını tabloyla eşleştirip doğru JDK’yı kurun. Minecraft 26.1 ve sonrası Java 25, 1.20.5–1.21.11 Java 21, 1.17–1.20.4 Java 17, 1.16.5 ve öncesi Java 8 ister. Java 26 LTS olmadığı için sunucularda kullanılmamalıdır. Aynı makinede farklı sürümler barındırıyorsanız sistem varsayılanına güvenmeyin; başlatma betiğinde ve servis dosyasında Java’nın tam yolunu yazın.