Komut İstemi’nde ya da start.bat penceresinde 'java' is not recognized as an internal or external command, operable program or batch file yazıyorsa Java bozulmuş değildir. Windows, java komutunu Path ortam değişkeninde listelenen klasörlerde arar ve java.exe dosyasını hiçbirinde bulamaz. Yani sorun kurulumda değil, adres tarifinde.
Bu sayfa baştan sona Windows içindir. Aşağıda Java’nın kurulu olup olmadığını üç komutla doğrulamayı, JAVA_HOME değişkenini oluşturmayı, Path listesine %JAVA_HOME%\bin eklemeyi, birden fazla Java sürümü çakışmasını çözmeyi ve start.bat içinde tam yol yazarak sorunu tamamen atlamayı bulacaksınız.
Java Kurulu mu? Üç Komutla Kontrol#
Başlat menüsüne cmd yazıp Komut İstemi’ni açın ve şu üç komutu sırayla çalıştırın:
java -version
where java
echo %JAVA_HOME%
Çıktıları şöyle okuyun:
java -versionsürüm basıyor- Java kurulu ve Path’te. Sorun başka yerde; muhtemelen sürüm uyumsuzluğu vardır.
java -version“is not recognized” diyor- Java ya kurulu değil ya da Path’te yok. Aşağıdaki adımlara devam edin.
where javahiçbir şey bulamıyor- Path içinde java.exe barındıran tek bir klasör bile yok.
where javabirden fazla satır basıyor- Makinede birden fazla Java var. İlk satır kazanan sürümdür.
echo %JAVA_HOME%aynı metni geri yazıyor- Böyle bir değişken tanımlı değil demektir; oluşturmanız gerekir.
Java gerçekten kurulu mu diye gözle bakmak isterseniz Dosya Gezgini’nde C:\Program Files klasörünü açın. Eclipse Adoptium, Java, Amazon Corretto ya da Zulu adında bir klasör varsa Java kurulu demektir. C:\Program Files (x86) altındaki Java klasörleri 32 bitlik kurulumlardır; sunucu için kullanılmazlar çünkü 32 bit JVM 4 GB’ın üzerinde heap ayıramaz.
Kurulu programlar listesinden de kontrol edebilirsiniz: Denetim Masası > Programlar > Programlar ve Özellikler ekranında “Eclipse Temurin JDK with Hotspot” benzeri bir kayıt arayın. Buradaki sürüm numarası, az sonra JAVA_HOME değerine yazacağınız klasör adıyla eşleşmelidir.
java komutu çalışsa bile sunucu UnsupportedClassVersionError ... class file version 69.0 hatasıyla düşer. Sürüm eşleşmesini hangi Java sürümü gerekir sayfasında tablo hâlinde bulabilirsiniz.Java Kurulu Değilse: Java 25 Kurulumu#
-
Eclipse Temurin JDK 25Önerilen · LTSİndir
-
Eclipse Temurin JDK 211.20.5–1.21.11 içinİndir
-
Eclipse Temurin JDK 81.16.5 ve öncesiİndir
Bağlantılar resmî Adoptium sayfasına gider. Oracle JDK önermiyoruz; lisans onayı istiyor ve sunucu kullanımı için gereksiz bir adım ekliyor. Kurulumun ekran ekran anlatımı Windows’a Java 25 kurulumu sayfasında.
MSI kurulumunu çalıştırırken özelleştirme ekranında iki seçeneği açın: Set JAVA_HOME variable ve Add to PATH. Bu ikisini işaretlerseniz aşağıdaki manuel adımların hiçbirine gerek kalmaz. İşaretlemeyi unuttuysanız kurulumu kaldırıp yeniden yapmak yerine değişkenleri elle tanımlamak daha hızlıdır.
| Minecraft sürümü | Gerekli Java | Class file sürümü | Durum |
|---|---|---|---|
| 26.1 ve sonrası (26.2 dahil) | Java 25 | 69.0 | Güncel |
| 1.20.5 – 1.21.11 | Java 21 | 65.0 | Eski hat |
| 1.17 – 1.20.4 | Java 17 | 61.0 | Eski hat |
| 1.16.5 ve öncesi | Java 8 | 52.0 | Çok eski |
JAVA_HOME Ortam Değişkenini Oluşturma#
-
JDK klasörünün tam yolunu kopyalayın#
Dosya Gezgini ile
C:\Program Files\Eclipse Adoptiumklasörünü açın. İçindekijdk-25.0.4.7-hotspotbenzeri klasöre girin, adres çubuğuna tıklayıp tam yolu kopyalayın. Sürüm numarası sizde farklı olabilir, uydurmayın; ekrandakini kullanın. -
Ortam Değişkenleri penceresini açın#
Başlat menüsüne ortam değişkenleri yazın ve Sistem ortam değişkenlerini düzenle sonucunu açın. Alternatif yol: Denetim Masası > Sistem ve Güvenlik > Sistem > Gelişmiş Sistem Ayarları. Açılan Sistem Özellikleri penceresinde Ortam Değişkenleri düğmesine basın.
-
Sistem değişkeni olarak ekleyin#
Alt bölümdeki Sistem değişkenleri listesinin altında Yeni düğmesine tıklayın. Değişken adı alanına
JAVA_HOME, Değişken değeri alanına kopyaladığınız yolu yazın:C:\Program Files\Eclipse Adoptium\jdk-25.0.4.7-hotspot -
Sonuna bin yazmadığınızdan emin olun#
JAVA_HOME daima JDK’nın kök klasörünü gösterir. Değerin sonuna
\bineklerseniz Path satırı...\bin\binhâline gelir ve komut yine tanınmaz. Ayrıca yolun sonunda ters bölü işareti bırakmayın.
Path Listesine %JAVA_HOME%\bin Ekleme#
JAVA_HOME tek başına java komutunu çalıştırmaz; sadece JDK’nın yerini tutan bir kısayoldur. Komutun tanınması için java.exe’yi barındıran bin klasörünün Path listesinde olması gerekir.
-
Path değişkenini düzenlemeye açın#
Aynı Ortam Değişkenleri penceresinde Sistem değişkenleri listesinden
Pathsatırını seçin ve Düzenle düğmesine basın. Windows 10 ve 11’de her yol ayrı bir satır olarak listelenir. -
Yeni satırı ekleyin#
Yeni düğmesine tıklayıp şu değeri yazın:
%JAVA_HOME%\binYüzde işaretlerini de yazmayı unutmayın; bu yazım JAVA_HOME değerinin yerine geçer. İleride Java sürümünü yükselttiğinizde yalnızca JAVA_HOME değerini değiştirmeniz yeter, Path’e dokunmazsınız.
-
Satırı listenin en üstüne taşıyın#
Yeni eklenen satır seçiliyken Yukarı Taşı düğmesine basarak listenin başına getirin. Makinede eski bir Java varsa bu adım hangi sürümün kazanacağını belirler. Ardından üç pencereyi de Tamam ile kapatın; İptal derseniz hiçbir değişiklik kaydedilmez.
Aynı işi komut satırından yapmak isterseniz, yönetici olarak açtığınız bir Komut İstemi penceresinde şu iki satırı çalıştırabilirsiniz:
setx /M JAVA_HOME "C:\Program Files\Eclipse Adoptium\jdk-25.0.4.7-hotspot"
setx /M PATH "%PATH%;%JAVA_HOME%\bin"
setx komutu Path değerini 1024 karakterle sınırlar ve uzun Path listeleri olan makinelerde sondaki girdileri sessizce kırpabilir. Path’i zaten kalabalık olan bir sunucuda bu komutu kullanmayın; arayüzden elle eklemek risksizdir. Ayarı bozarsanız geri almak zahmetli olur.Komut İstemini Yeniden Açmak Neden Şart?#
Bu, en çok zaman kaybettiren ayrıntı. Windows ortam değişkenlerini süreç başlatılırken bir kez okur ve o sürecin ömrü boyunca değiştirmez. Yani ayarı kaydettiğiniz anda açık duran Komut İstemi penceresi hâlâ eski listeyi kullanır; java -version yazdığınızda yine aynı hatayı alırsınız ve ayarın işe yaramadığını sanırsınız.
Yapılacak şey basit: tüm cmd, PowerShell ve Windows Terminal pencerelerini kapatın, yeni bir tane açın. Aynı kural Dosya Gezgini’nden çift tıkladığınız start.bat için de geçerlidir; Explorer da uzun süredir açıksa yeni değişkeni görmeyebilir.
Değişiklik yeni pencerede de görünmüyorsa oturumu kapatıp yeniden açın. Windows hizmeti olarak çalışan birşey varsa onun da yeniden başlatılması gerekir.
echo %JAVA_HOME%
where java
java -version
Bu üç satır yeni pencerede sırasıyla JDK yolunu, java.exe konumunu ve sürüm bilgisini basıyorsa iş bitmiştir.
Birden Fazla Java Sürümü Çakışması#
Minecraft oynayan makinelerde bu çok olur. Oyun launcher’ı kendi Java çalışma zamanını kurar, 1.12.2 modpack’i için Java 8 kurulmuştur, sonra 26.2 sunucusu için Java 25 gelir. Path listesinde üçü birden durur ve en üstteki kazanır. Üstelik yeni kurulan sürüm otomatik olarak en üste geçmez; kurulum kendi girdisini listenin sonuna eklerse eski sürüm kazanmaya devam eder.
Hangisinin kazandığını görmek için tek komut yeter:
where java
Bu komut bulduğu tüm java.exe dosyalarını sırayla listeler. Örnek bir çıktı şöyle görünür:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
C:\Program Files\Eclipse Adoptium\jdk-25.0.4.7-hotspot\bin\java.exe
Burada ilk satır kazanıyor, yani Java 25 kurulu olmasına rağmen eski bir Oracle javapath girdisi devrede. Çözüm için Path listesinde %JAVA_HOME%\bin satırını yukarı taşıyın ya da artık kullanmadığınız Java sürümünü Denetim Masası > Programlar ve Özellikler üzerinden kaldırın.
Kesin Çözüm: start.bat İçinde Tam Yol#
Ortam değişkeni ayarı makine genelinde çalışır ama bir gün bozulabilir: yeni bir launcher kurulur, Path’in başına başka bir satır girer ve sunucunuz sessizce yanlış Java ile açılmaya başlar. Üretim sunucularında bu riski hiç almayın, java.exe’yi tam yoluyla çağırın.
@echo off
title Minecraft Server - Paper 26.2
cd /d C:\minecraft\server
set JAVA="C:\Program Files\Eclipse Adoptium\jdk-25.0.4.7-hotspot\bin\java.exe"
set MEM=-Xms6G -Xmx6G
%JAVA% %MEM% -jar paper.jar nogui
pause
Yol boşluk içerdiği için tırnak zorunludur. Bu yazımda Path ne olursa olsun sunucu daima gösterdiğiniz Java ile açılır. Aynı makinede biri 1.12.2 (Java 8), diğeri 26.2 (Java 25) çalışan iki sunucu tutuyorsanız zaten tek doğru yöntem budur; her sunucunun start.bat dosyası kendi Java sürümünü gösterir ve ikisi birbirine karışmaz.
Java sürümünü yükselttiğinizde bu satırı güncellemeniz gerekeceğini unutmayın. Yeni JDK farklı bir klasöre kurulduğu için eski yol geçersiz kalır ve sunucu The system cannot find the path specified diyerek açılmaz. Yükseltmelerden sonra C:\Program Files\Eclipse Adoptium klasörünü açıp yeni klasör adını kopyalayın.
Bat dosyasının tamamını, RAM ve bayrak ayarlarıyla birlikte start.bat oluşturma sayfasında bulabilirsiniz. Dosya çalıştırıldığında pencere hemen kapanıyorsa start.bat açılıp kapanıyor sayfasındaki teşhis tablosuna bakın.
Hizmet ve Görev Senaryosunda Java Yolu#
Bu bölüm, sunucusunu masaüstünden elle açan kullanıcıları ilgilendirmiyor. Ama Minecraft’ı Windows hizmeti ya da Görev Zamanlayıcı görevi olarak çalıştırıyorsanız burada bambaşka bir tuzak var.
Görevler ve hizmetler sizin oturumunuzda çalışmaz. Genellikle SYSTEM hesabında ya da özel bir hizmet hesabında koşarlar. O hesap sizin Kullanıcı değişkenleri bölümüne eklediğiniz JAVA_HOME ve Path girdilerini göremez. Sonuç, masaüstünde sorunsuz açılan bir sunucunun hizmet olarak çalıştırıldığında “java is not recognized” demesidir.
İki şeyi birden yaparsanız bu senaryoda hiç sorun yaşamazsınız:
- JAVA_HOME ve
%JAVA_HOME%\bingirdilerini Sistem değişkenleri bölümüne ekleyin, kullanıcı bölümüne değil. - bat dosyasında java.exe’yi yukarıdaki gibi tam yoluyla çağırın; böylece ortam değişkenine hiç ihtiyaç kalmaz.
Ortam değişkenlerini değiştirdikten sonra ilgili hizmeti yeniden başlatmayı unutmayın. Hizmetler de tıpkı cmd pencereleri gibi ortam listesini başlangıçta bir kez okur; siz değişkeni eklesiniz bile çalışan hizmet eski listeyle devam eder. Sunucuyu bu şekilde çalıştırmayı düşünüyorsanız Görev Zamanlayıcı ile otomatik başlatma sayfasındaki hesap seçimi bölümünü de okuyun.
Hâlâ Çalışmıyorsa: Kontrol Listesi#
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| Ayar yapıldı, komut hâlâ tanınmıyor | cmd penceresi eski değişken listesini kullanıyor | Tüm pencereleri kapatıp yeniden açın, gerekirse oturumu kapatın |
echo %JAVA_HOME% boş dönüyor |
Değişken kullanıcı bölümüne eklenmiş veya kaydedilmemiş | Sistem değişkenleri bölümüne ekleyip pencereleri Tamam ile kapatın |
Path’te ...\bin\bin görünüyor |
JAVA_HOME değerine \bin eklenmiş |
JAVA_HOME değerini JDK kök klasörüyle sınırlayın |
| Yanlış sürüm açılıyor | Path’te başka bir Java girdisi daha üstte | where java ile sırayı görün, satırı yukarı taşıyın |
class file version 69.0 hatası |
Java 21 çalışıyor, jar Java 25 istiyor | Java 25 kurun; sürüm hatası çözümü |
| Hizmet olarak çalışırken tanınmıyor | SYSTEM hesabı kullanıcı değişkenlerini görmüyor | Değişkenleri sistem düzeyinde tanımlayın veya tam yol kullanın |
Bir de şu var: kurumsal makinelerde grup ilkesi Path değişikliklerini oturum açıldığında geri alabiliyor. Kendi VDS’nizde bu ihtimal düşüktür, ancak şirket bilgisayarında sunucu kuruyorsanız değişkenin sonraki açılışta hala yerinde durup durmadığını kontrol edin.
Sunucu kurulumunun tamamını sıfırdan yapmak isterseniz Windows’ta Minecraft sunucu kurulumu rehberi tüm adımları sırayla veriyor. Java, jar ve RAM ayarları hazır gelen bir ortam tercih ederseniz Batihost’un Minecraft sunucu paketleri Ryzen 9 işlemci ve NVMe SSD üzerinde 8 GB RAM’den başlıyor.
Özetle#
“java is not recognized” hatası bir kurulum hatası değil, bir yol tarifi hatasıdır. Sırayla şunu yapın: java -version ve where java ile durumu görün, gerekiyorsa Eclipse Temurin JDK 25 kurun, JAVA_HOME değişkenini JDK kök klasörüne ayarlayın, Path listesine %JAVA_HOME%\bin ekleyin ve en üste taşıyın.
Sonra da en çok atlanan adımı atlamayın: açık Komut İstemi pencerelerini kapatıp yeniden açın. Değişkenler yalnızca yeni açılan süreçlerde geçerli olur.
Uzun vadede en dayanıklı çözüm start.bat içinde java.exe’yi tam yoluyla çağırmaktır; makineye kaç Java kurulursa kurulsun sunucunuz doğru sürümle açılır. Takıldığınız noktada where java çıktısını ekleyerek destek talebi açabilirsiniz.