Minecraft start.bat dosyası çift tıklandığında siyah bir pencere açılıp bir saniye içinde kapanıyorsa sunucu çökmüyor, aslında hiç başlamıyor. Java bir hata basıyor, hemen çıkıyor ve cmd son komut bitince pencereyi kapatıyor. Yani hata mesajı orada, sadece göremiyorsunuz.
Bu sayfa baştan sona Windows içindir. Önce hatayı ekranda tutmayı, sonra da bat dosyası kapanmasının sekiz yaygın sebebini tek tek göreceksiniz. Destek taleplerinde gelen “minecraft sunucu açılmıyor” vakalarının neredeyse tamamı aşağıdaki tablodaki satırlardan birine denk düşüyor.
Önce pause Satırı: Kapanan Pencereyi Durdurun#
Teşhis yapmadan çözüm aramanın anlamı yok. Not Defteri ile start.bat dosyanızı açın ve en alt satıra pause yazın:
@echo off
cd /d C:\minecraft\server
java -Xms6G -Xmx6G -jar paper.jar nogui
pause
pause, kendinden önceki komut ne yaparsa yapsın pencereyi “Devam etmek için bir tuşa basın” satırında bekletir. Artık çift tıkladığınızda hata satırı ekranda kalır.
İkinci yöntem daha da güvenlidir çünkü batch dosyası hiç çalışmasa bile pencere kapanmaz. Başlat menüsüne cmd yazıp Komut İstemi’ni açın ve şunları sırayla yazın:
cd /d C:\minecraft\server
start.bat
logs\latest.log dosyasındadır; okuma yöntemini sunucu logları nasıl okunur sayfasında anlattık.Hata Satırı, Sebebi ve Çözümü#
Aşağıdaki tablo bu sayfanın özüdür. Penceredeki satırı soldaki sütunda bulun, sağdaki sütunu uygulayın.
| Ekrandaki hata satırı | Gerçek sebep | Çözüm |
|---|---|---|
| Hiç mesaj yok, pencere anında kapanıyor | pause satırı yok |
Dosyanın en altına pause ekleyin, tekrar çalıştırın |
'java' is not recognized as an internal or external command |
Java kurulu değil ya da Path değişkeninde yok | PATH ayarını düzeltin veya java.exe tam yolunu yazın |
Error: Unable to access jarfile paper.jar |
Jar adı yanlış veya çalışma klasörü başka | Jar’ın gerçek adını yazın, başa cd /d C:\minecraft\server ekleyin |
The system cannot find the path specified. |
cd /d satırındaki klasör yolu hatalı |
Yolu Dosya Gezgini adres çubuğundan kopyalayıp yapıştırın |
You need to agree to the EULA in order to run the server. |
eula.txt içinde hâlâ eula=false yazıyor |
Satırı eula=true yapıp kaydedin; ayrıntılı çözüm |
Error occurred during initialization of VMCould not reserve enough space for object heap |
-Xmx değeri makinenin boş RAM’inden büyük |
Heap’i düşürün: 8 GB makinede -Xms6G -Xmx6G |
Invalid maximum heap size: -Xmx6 GB |
Boşluklu veya hatalı birim yazımı | -Xmx6G biçiminde, boşluksuz ve tek harfli birimle yazın |
UnsupportedClassVersionError ... class file version 69.0 |
Makinede Java 21 var, jar Java 25 istiyor | Java 25 kurun; sürüm hatası detayı |
'@echo' is not recognized |
Dosya UTF-8 BOM ile kaydedilmiş | Not Defteri’nde Farklı Kaydet ile kodlamayı ANSI yapın |
| Çift tıklayınca dosya Not Defteri’nde açılıyor | Dosyanın gerçek adı start.bat.txt |
Uzantıları görünür yapıp sondaki .txt kısmını silin |
Error: Could not find or load main class |
Jar indirmesi yarıda kalmış veya bozuk | Jar’ı resmî sayfadan yeniden indirin, dosya boyutunu karşılaştırın |
| Dosya bir anda ortadan kayboldu | Windows Defender karantinaya aldı | Koruma geçmişinden geri yükleyip klasörü dışlamaya ekleyin |
Java Bulunamıyor: 'java' is not recognized#
Bu, listenin bir numarasıdır. Windows java yazdığınızda çalıştırılabilir dosyayı Path ortam değişkeninde arar; orada bulamazsa komutu tanımaz ve batch bir sonraki satıra, yani pause’a geçer. Bazen Java gerçekten kuruludur, sadece kurulum sırasında Path’e eklenmemiştir.
Kontrol tek satır. Komut İstemi’ni açıp şunu yazın:
java -version
where java
java -version sürüm bilgisi basıyorsa Java kuruludur. where java ise hangi klasördeki java.exe’nin çalıştığını gösterir; makinede birden fazla Java varsa bu komut hangisinin kazandığını söyler.
Path ayarını hiç kurcalamadan kalıcı ve kesin bir çözüm de var: start.bat içinde java.exe’yi tam yoluyla çağırmak. Böylece Windows’un arama sırasına hiç güvenmemiş olursunuz.
@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"
%JAVA% -Xms6G -Xmx6G -jar paper.jar nogui
pause
Klasör adındaki sürüm numarası sizde farklı olabilir; C:\Program Files\Eclipse Adoptium içine girip gerçek adı kopyalayın. JAVA_HOME ve Path düzenlemesini adım adım görmek isterseniz java komutu tanınmıyor sayfasına geçin.
Yanlış Jar Adı ve Yanlış Çalışma Klasörü#
İkinci en yaygın sebep bu ve ikisi çoğu zaman birlikte gelir. Java, -jar parametresinde yazan dosyayı o anki çalışma klasöründe arar; bulamazsa Unable to access jarfile der ve çıkar.
Jar dosyasının gerçek adını yazın#
Paper’ın indirdiğiniz dosyası genelde paper-26.2-112.jar gibi build numarası içeren uzun bir addır. start.bat’ta paper.jar yazdıysanız hata alırsınız. İki seçeneğiniz var: ya bat dosyasındaki adı gerçek adla değiştirin, ya da jar’ı yeniden adlandırıp paper.jar yapın. İkinci yöntemi tercih edin; sunucuyu her güncellediğinizde bat dosyasına dokunmak zorunda kalmazsınız.
Başa cd /d satırını ekleyin#
Bir toplu iş dosyası her zaman kendi klasöründen çalışmaz. Kısayoldan, Görev Zamanlayıcı’dan ya da başka bir bat içinden çağrıldığında çalışma klasörü bambaşka olabilir. Bunu tek satırla sabitleyin:
cd /d C:\minecraft\server
/d anahtarı sürücü değişimini de yapar; onsuz D: sürücüsündeki bir klasöre geçemezsiniz. Bu hatanın uzun anlatımı Unable to access jarfile sayfasında duruyor.
eula.txt, server.properties ve logs klasörü aynı dizinde durmalıdır. Sunucu klasörünü henüz kurmadıysanız Windows’ta Minecraft sunucu kurulumu rehberini tamamlayın.EULA Kabul Edilmemiş#
Sunucu ilk çalıştırıldığında dosyalarını oluşturur, eula.txt’yi yazar ve kapanır. Bu bir hata değil, beklenen davranıştır. Ama pause satırı yoksa siz yalnızca kapanan bir pencere görürsünüz.
Çözüm için sunucu klasöründeki eula.txt dosyasını Not Defteri ile açın:
#By changing the setting below to TRUE you are indicating your agreement to our EULA.
eula=false
Son satırı eula=true yapın, kaydedin, start.bat’ı yeniden çalıştırın. Satırın başında # işareti olmamalı ve true kelimesinin yanında boşluk bulunmamalıdır.
Heap Değeri Makinenin RAM’inden Büyük#
JVM açılırken istediği heap alanını baştan ayırmaya çalışır. Ayıramazsa hiç başlamadan Could not reserve enough space for object heap diyerek çıkar. 8 GB’lık bir makinede -Xmx8G yazmak tam olarak bunu yapar: Windows’un kendisi zaten 1,5–2 GB kullanıyorken JVM’e boşta o kadar alan kalmaz.
| Sunucu paketi | Doğru heap | Yanlış yazım |
|---|---|---|
| 8 GB | -Xms6G -Xmx6G | -Xmx8G |
| 12 GB | -Xms10G -Xmx10G | -Xmx12G |
| 16 GB | -Xms14G -Xmx14G | -Xmx16G |
| 32 GB | -Xms28G -Xmx28G | -Xmx32G |
Xms ve Xmx daima eşit verilir; farklı verildiğinde JVM heap’i çalışırken büyütüp küçültür ve her boyutlandırma bir duraklama üretir. Değer seçimini ve doğrulamasını ayrıntılı olarak Windows’ta sunucuya RAM verme sayfasında bulacaksınız. Sunucu açılıyor ama bir süre sonra bellek hatasıyla düşüyorsa konu farklıdır, Out of Memory çözümüne bakın.
-Xmx6 GB, -Xmx 6G veya -Xmx6gb yazımlarının üçü de Invalid maximum heap size hatası verir. Doğru yazım tek parça hâlinde -Xmx6G şeklindedir.Dosya Gerçekte .bat Değil#
Windows varsayılan olarak bilinen uzantıları gizler. Not Defteri’nde “Farklı Kaydet” derken kayıt türünü değiştirmediyseniz dosyanız start.bat.txt olarak kaydedilir. Ekranda start.bat yazar, simge defterdir ve çift tıklayınca sunucu değil Not Defteri açılır.
-
Uzantıları görünür yapın#
Dosya Gezgini’ni açın. Windows 11’de üst şeritte Görünüm > Göster > Dosya adı uzantıları, Windows 10’da Görünüm sekmesindeki Dosya adı uzantıları kutucuğunu işaretleyin.
-
Gerçek adı düzeltin#
Dosyaya sağ tıklayıp Yeniden adlandır deyin ve sondaki
.txtkısmını silin. Windows uzantı değişikliği için onay isteyecek, Evet deyin. Simge dişli görünümüne dönmelidir. -
Kodlamayı ANSI yapın#
Dosyayı Not Defteri’nde açıp Dosya > Farklı Kaydet deyin. Kayıt türü alanını Tüm Dosyalar (*.*), Kodlama alanını ANSI seçin. UTF-8 kalırsa dosyanın başına görünmez bir BOM işareti eklenir ve cmd ilk satırı
'@echo'diye okur.
Klasör Yolu ve Defender Kaynaklı Kapanmalar#
Türkçe karakterli veya boşluklu yol#
Komut İstemi Türkçe Windows’ta 857 kod sayfasıyla açılır ve ç, ğ, ı, ö, ş, ü harflerini her zaman doğru yorumlayamaz. Sunucu klasörü C:\Kullanıcılar\Ömer\Masaüstü\sunucu gibi bir yoldaysa cd /d satırı sessizce başarısız olur, ardından jar bulunamaz. OneDrive ile eşitlenen Masaüstü klasörleri ayrıca dosya kilitleme sorunları da çıkarır.
Kural basit: sunucuyu her zaman kısa ve sade bir yola kurun.
C:\minecraft\server
C:\minecraft\survival
C:\minecraft\test
Yolda boşluk varsa da tırnak kullanmak zorunda kalırsınız; bunu unutmak yeni bir hata kaynağıdır. Boşluksuz yol seçmek herşeyi baştan sadeleştirir.
Windows Defender karantinası#
Bazı sunucu jar’ları ve özellikle mod dosyaları, sıkıştırılmış Java arşivi oldukları için sezgisel taramada yanlış pozitif üretebilir. Defender dosyayı sessizce karantinaya alır; start.bat çalışır, jar’ı bulamaz ve kapanır.
-
Koruma geçmişini kontrol edin#
Başlat menüsünden Windows Güvenliği uygulamasını açın, Virüs ve tehdit koruması bölümüne girin ve Koruma geçmişi bağlantısına tıklayın. Son saatlerdeki kayıtlarda sunucu klasörünüzden bir dosya görüyorsanız sebep budur.
-
Dosyayı geri yükleyip klasörü dışlayın#
Kaydı açıp Eylemler > Geri yükle deyin. Ardından Virüs ve tehdit koruması ayarlarını yönet > Dışlamalar > Dışlama ekle veya kaldır yolundan
C:\minecraftklasörünü Klasör türünde dışlama listesine ekleyin.
Adım Adım Teşhis Sırası#
Yukarıdakilerin hiçbiri tutmadıysa aşağıdaki sırayı uygulayın. Her adım bir öncekini elemek üzerine kuruludur, karışık deneme yapmayın.
- 1. Hatayı görün
- Dosyanın sonuna
pauseekleyin ya da bat’ı açık bir Komut İstemi penceresinden çalıştırın. - 2. Java’yı doğrulayın
java -versionçıktısında 25 sürümünü görün. Görmüyorsanız kurulum veya Path eksiktir.- 3. Dosya adlarını doğrulayın
- Uzantıları görünür yapın;
start.batve jar dosyasının tam adını gözle karşılaştırın. - 4. Sade bir bat ile test edin
- Bayrakların hepsini kaldırın, yalnızca
java -Xms6G -Xmx6G -jar paper.jar noguisatırıyla deneyin. Açılıyorsa sorun bayraklardadır. - 5. Logları okuyun
- Sunucu bir süre açılıp kapanıyorsa
logs\latest.logdosyasının son 50 satırına bakın; eklenti kaynaklı çökmeler orada yazar. - 6. Portu kontrol edin
- Konsol açılıyor ama kimse bağlanamıyorsa sorun bat dosyasında değildir; 25565/TCP portunu güvenlik duvarında açın.
Bayrakları teker teker geri eklerken bir yandan da dosyanın son hâlini yedekleyin. Çalışan bir start.bat’ın kopyasını start-calisan.bat.yedek gibi bir adla saklamak, deneme yaparken geri dönecek bir noktanız olmasını sağlar.
Done (12.480s)! For help, type "help" satırını gördüyseniz sunucu ayaktadır. Bu satırdan sonra pencereyi çarpıdan kapatmayın; konsola stop yazarak kapatın, aksi hâlde chunk verileri diske yazılmadan süreç sonlanır.Disk ve donanım kaynaklı gizli kapanmalar#
Nadir ama gerçek bir durum: makine yeterli fiziksel belleğe sahip değilse ya da disk doluysa JVM açılışta sessizce düşebilir. Sunucu klasörünün bulunduğu diskte en az birkaç GB boş alan bırakın; chunk yazımı sırasında disk dolarsa yalnızca sunucu kapanmaz, dünya dosyası da bozulabilir.
İşlemci tarafında ise şu ayrıntı önemlidir: Minecraft’ın ana tick döngüsü tek çekirdekte çalışır, yani çekirdek sayısı değil saat hızı belirleyicidir. Batihost’ta Minecraft sunucuları bu yüzden AMD Ryzen 9 7900X / 7950X sınıfı yüksek frekanslı işlemciler ve NVMe SSD üzerinde çalışır, en küçük paket 8 GB RAM ile başlar. Hazır yapılandırılmış bir ortam isterseniz Minecraft sunucu paketlerine bakabilirsiniz; kurulumu tamamen kendiniz yapmak isterseniz yüksek frekanslı VDS seçenekleri de var.
Özetle#
start.bat açılıp kapanıyorsa panik yapmaya gerek yok, sunucu bozulmadı. Sıra şu: önce pause satırıyla hatayı görünür yapın, sonra yukarıdaki tablodan satırı eşleştirin. Vakaların büyük çoğunluğu Java’nın Path’te olmaması, jar adının tutmaması, eula=false kalması ve heap değerinin makineden büyük olması ile açıklanıyor.
Kalıcı bir kurulum için üç alışkanlık edinin: sunucuyu C:\minecraft\server gibi sade bir yola kurun, start.bat içinde java.exe’yi tam yoluyla çağırın, RAM’i -Xms ve -Xmx eşit olacak şekilde verin. Dosyanın tam ve sağlam bir örneğini start.bat oluşturma sayfasında bulabilirsiniz.
Hata satırını çözemediğiniz bir durum kalırsa logs\latest.log dosyasıyla birlikte Batihost’a destek talebi açın; log olmadan uzaktan teşhis zordur.