Minecraft sunucusu kurarken yalnızca Minecraft, Forge, Fabric veya NeoForge sürümünün doğru olması yeterli değildir. Sunucunun çalıştırıldığı Java sürümünün de Minecraft sürümüyle uyumlu olması gerekir.
Yanlış Java sürümü kullanıldığında sunucu hiç açılmayabilir, başlangıç sırasında hata verebilir veya mod loader çalışmadan kapanabilir.
Özellikle Ubuntu ve diğer Linux sunucularda birden fazla Java sürümünün aynı anda kurulu olması, doğru Java kurulmuş olmasına rağmen Minecraft'ın yanlış sürümle başlatılmasına neden olabilir.
1. Sunucunun kullandığı Java sürümünü kontrol edin
İlk yapılması gereken işlem:
java -version
Örneğin:
openjdk version "21.0.4"
OpenJDK Runtime Environment
OpenJDK 64-Bit Server VM
Bu çıktı sistemde varsayılan olarak çalışan Java sürümünün Java 21 olduğunu gösterir.
Eğer:
Command 'java' not found
hatası alıyorsanız Java sistem genelinde kurulu değildir veya Java executable dosyası PATH içerisinde bulunmuyordur.
2. Minecraft için neden Java sürümü önemlidir?
Minecraft'ın farklı sürümleri farklı Java nesilleri üzerinde çalışır. Bunun yanında Forge, NeoForge, Fabric ve modların kendileri de belirli Java sürümlerine ihtiyaç duyabilir.
Bu nedenle:
Minecraft sürümü
↓
Mod loader sürümü
↓
Java sürümü
↓
Mod sürümleri
birbirinden bağımsız değerlendirilmemelidir.
Örneğin doğru Minecraft ve NeoForge sürümünü kurup yanlış Java runtime ile başlatmak yine sunucunun açılmamasına neden olabilir.
3. Yanlış Java sürümünün tipik belirtileri nelerdir?
Java sürümü uyumsuz olduğunda karşılaşabileceğiniz hatalardan bazıları şunlardır:
UnsupportedClassVersionError
veya:
class file version ...
Bazı durumlarda mod loader doğrudan Java sürümünün desteklenmediğini belirten bir mesaj da gösterebilir.
Burada önemli olan hata mesajının tamamını okumaktır. Sunucu açılmadığında doğrudan modları silmek yerine Java runtime kontrol edilmelidir.
4. Ubuntu üzerinde hangi Java sürümleri kurulu?
Sistemde kurulu Java alternatiflerini görmek için:
update-alternatives --list java
kullanabilirsiniz.
Alternatif olarak:
ls -la /usr/lib/jvm/
komutu da mevcut Java kurulumlarını görmenize yardımcı olabilir.
Birden fazla Java sürümü kurulu olması normaldir. Önemli olan Minecraft sunucusunun hangisini kullandığıdır.
5. Varsayılan Java sürümü nasıl değiştirilir?
Ubuntu üzerinde birden fazla Java sürümü bulunuyorsa:
update-alternatives --config java
komutunu kullanabilirsiniz.
Sistem size kurulu Java executable dosyalarını listeler ve varsayılan olarak kullanılacak sürümü seçmenize izin verir.
Seçim yaptıktan sonra tekrar:
java -version
çalıştırarak değişikliği doğrulayın.
6. Sistemin varsayılan Java sürümünü değiştirmek zorunda değilsiniz
Aynı sunucuda farklı Java sürümlerine ihtiyaç duyan birden fazla Minecraft sunucusu çalıştırıyorsanız sistem genelindeki Java sürümünü sürekli değiştirmek iyi bir yöntem değildir.
Bunun yerine Minecraft sunucusunu doğrudan istediğiniz Java executable dosyasıyla başlatabilirsiniz.
Örneğin:
/usr/lib/jvm/java-21-openjdk-amd64/bin/java -Xms2G -Xmx4G -jar server.jar nogui
Böylece diğer uygulamaların veya Minecraft sunucularının kullandığı varsayılan Java sürümünü değiştirmeden yalnızca ilgili sunucunun Java sürümünü belirlemiş olursunuz.
7. Java 17, Java 21 veya Java 25 nasıl kurulur?
Ubuntu üzerinde paket depolarınızda mevcut olması halinde Java runtime şu şekilde kurulabilir.
Java 17
apt update
apt install -y openjdk-17-jre-headless
Java 21
apt update
apt install -y openjdk-21-jre-headless
Java 25
apt update
apt install -y openjdk-25-jre-headless
Grafik arayüzü bulunmayan Minecraft sunucularında genellikle headless JRE paketinin kullanılması yeterlidir.
Kurulumdan sonra mutlaka:
java -version
ile aktif sürümü doğrulayın.
8. Java'yı kurdum ama hâlâ eski sürüm çalışıyor
Bu oldukça sık karşılaşılan bir durumdur.
Örneğin Java 25 kurmuş olabilirsiniz ancak:
java -version
hâlâ Java 21 gösterebilir.
Bunun nedeni yeni Java paketinin kurulmuş olması fakat sistemde varsayılan Java executable dosyasının değişmemiş olması olabilir.
Kontrol etmek için:
which java
readlink -f $(which java)
kullanabilirsiniz.
Ardından:
update-alternatives --config java
ile gerekli sürümü seçebilirsiniz.
9. run.sh doğru Java'yı kullanıyor mu?
Forge ve NeoForge sunucularında yalnızca server.jar dosyasına bakmak yeterli olmayabilir.
Örneğin bir NeoForge sunucusunun run.sh dosyasında şöyle bir satır bulunabilir:
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/VERSION/unix_args.txt "$@"
Buradaki java komutu sistemin varsayılan Java runtime'ını kullanır.
Dolayısıyla NeoForge doğru sürümde kurulmuş olsa bile sistem varsayılan olarak yanlış Java sürümünü kullanıyorsa sunucu yine hata verebilir.
Gerekirse başlangıç scriptinde Java'nın tam yolu kullanılabilir:
/usr/lib/jvm/java-25-openjdk-amd64/bin/java @user_jvm_args.txt @libraries/net/neoforged/neoforge/VERSION/unix_args.txt "$@"
10. screen içerisinde çalışan Minecraft hangi Java'yı kullanıyor?
Sunucuyu screen ile çalıştırmanız Java sürümünü değiştirmez. Screen içerisinde çalıştırılan komut hangi Java executable dosyasını çağırıyorsa Minecraft onu kullanacaktır.
Örneğin:
screen -S minecraft
ardından:
java -version
çalıştırarak ilgili shell ortamındaki Java sürümünü kontrol edebilirsiniz.
11. Çalışan Minecraft işleminin Java yolunu kontrol edin
Sunucu zaten çalışıyorsa Java işlemini bulun:
ps aux | grep java
PID değerini öğrendikten sonra Linux üzerinde çalışan executable dosyasını kontrol edebilirsiniz:
readlink -f /proc/PID/exe
Örneğin:
readlink -f /proc/12345/exe
Bu yöntem, çalışan Minecraft sunucusunun gerçekte hangi Java binary'sini kullandığını görmenizi sağlar.
12. Mod hatası sandığınız problem Java olabilir
Modlu Minecraft sunucularında hata ekranında onlarca mod adı görmek problemin mutlaka modlardan kaynaklandığı anlamına gelmez.
Önce temel çalışma ortamını doğrulayın:
java -version
↓
Minecraft sürümü
↓
Forge / NeoForge / Fabric sürümü
↓
Mod sürümleri
Temel runtime yanlışsa onun üzerinde çalışan modların da düzgün yüklenmesini bekleyemezsiniz.
13. Hızlı Java kontrol listesi
Minecraft sunucunuz Java kaynaklı bir hata veriyorsa aşağıdaki komutlarla başlayabilirsiniz:
java -version
which java
readlink -f $(which java)
update-alternatives --list java
ls -la /usr/lib/jvm/
ps aux | grep java
Bu kontroller sayesinde:
- Varsayılan Java sürümünü,
- Java executable dosyasının konumunu,
- Sistemde bulunan diğer Java sürümlerini,
- Minecraft'ın çalışan Java işlemini
hızlı şekilde tespit edebilirsiniz.
Önce hatanın hangi katmanda olduğunu bulun
Minecraft sunucusu açılmadığında çözüm her zaman mod silmek, RAM artırmak veya server.jar değiştirmek değildir.
Doğru teşhis sırası çoğu durumda daha değerlidir:
Java doğru mu?
↓
Minecraft doğru mu?
↓
Mod loader doğru mu?
↓
Modlar doğru mu?
↓
Config / dünya kaynaklı hata var mı?
Özellikle modlu Minecraft sunucularında bu sırayı takip etmek, yüzlerce dosyayı gereksiz yere değiştirmekten çok daha hızlı sonuç verebilir.
Batihost'ta sadece sunucu vermiyoruz, Minecraft da biliyoruz.
Minecraft sunucunuz Java hatası veriyor, Forge veya NeoForge başlamıyor, modpack açılmıyor ya da crash log içerisinde yüzlerce hata görünüyorsa ilk yapılması gereken rastgele dosya değiştirmek değil, problemin hangi katmandan kaynaklandığını tespit etmektir.
Batihost olarak Minecraft sunucularında yalnızca işlemci, RAM ve disk kaynağı sağlamakla kalmıyor; müşterilerimizin karşılaştığı sunucu taraflı teknik problemlerin teşhisinde de yardımcı oluyoruz.
