Serwer Minecraft się nie uruchamia

Pięć błędów, które nie pozwalają uruchomić serwera Minecraft, jak odczytać linię logu, która wskazuje twój błąd, i dokładna naprawa dla każdego z nich.

Serwer Minecraft, który zamyka się sekundę po starcie, wygląda na zagadkę, ale prawie nigdy nią nie jest. Serwer wypisuje powód, zanim się zamknie, w konsoli albo w logs/latest.log, i w zdecydowanej większości przypadków ta linia od razu nazywa problem. Ten przewodnik opisuje pięć przyczyn, za którymi stoi prawie każdy nieudany start, jak rozpoznać każdą z nich po komunikacie błędu i co zmienić.

Przeczytaj log, zanim cokolwiek zmienisz

Otwórz logs/latest.log w folderze serwera i przewiń na sam dół. Ostatnie kilka linii oraz pierwsza linia ostatniego stack trace wskażą, która z poniższych przyczyn dotyczy Ciebie. Zgadywanie zamienia dwuminutową naprawę w wieczór, bo każda z tych napraw jest inna i żadna nie pomaga przy pozostałych.

W FluxCraft konsola i plik logu są w panelu, więc możesz odczytać crash bez SSH i transferu plików. Jeśli serwer restartuje się w pętli, log z poprzedniej próby jest w logs/ jako archiwum z znacznikiem czasu.

Co mówi logPrzyczynaSekcja poniżej
"Musisz zaakceptować EULA"EULA nie zaakceptowanaPrzyczyna 1
„Unsupported class file major version” lub UnsupportedClassVersionErrorZła wersja JavyPrzyczyna 2
„Could not reserve enough space for object heap” lub OutOfMemoryErrorNiewłaściwie ustawiona pamięćPrzyczyna 3
"NIE UDAŁO SIĘ ZWIĄZAĆ Z PORTEM" lub "Address already in use"Port zajętyPrzyczyna 4
Stack trace wskazujący konkretny mod lub pluginKonflikt modów lub pluginówPrzyczyna 5

Przyczyna 1: EULA nie zostało zaakceptowane

Przy pierwszym uruchomieniu serwer generuje eula.txt, wyświetla komunikat o zaakceptowaniu licencji Mojang i od razu się kończy. To zdecydowanie najczęstszy powód, dla którego zupełnie nowy serwer „nie działa”, i nie jest to wcale błąd: serwer czeka na twoją decyzję.

Otwórz eula.txt, zmień eula=false na eula=true, zapisz i uruchom ponownie. Nic innego w tym pliku nie ma znaczenia. Jeśli korzystasz z hostingu zarządzanego, EULA jest zwykle akceptowana za ciebie podczas wdrożenia, dlatego ten błąd dotyka głównie osób, które stawiają serwer ręcznie.

Przyczyna 2: nieprawidłowa wersja Javy

To błąd, który najbardziej myli ludzi, bo nie wygląda na problem z wersją. Serwer zgłasza UnsupportedClassVersionError albo komunikat „Unsupported class file major version” i zatrzymuje się. Oznacza to, że plik jar został skompilowany pod nowszą Javę, niż ta, na której go uruchamiasz.

Wymaganie to minimum, a nie dokładne dopasowanie. Starszy Minecraft działa doskonale na nowszej Javie. Problem pojawia się tylko w drugą stronę, czyli nowszy Minecraft uruchomiony na starszej Javie. Zmodowane serwery dziedziczą wymaganie wersji gry, na którą celuje ich build Forge, NeoForge lub Fabric.

  • Sprawdź, co faktycznie masz, poleceniem "java -version". Na maszynie z kilkoma zainstalowanymi JDK ta, która jest na Twojej ścieżce PATH, nie zawsze jest tą, którą myślisz.
  • Jeśli błąd wskazuje major version 65, a masz Javę 17, potrzebujesz Javy 21. Zainstaluj pasującą wersję LTS i jawnie wskaż jej ścieżkę w skrypcie startowym, zamiast polegać na PATH.
  • Na hostingu zarządzanym zajmuje się tym obraz, więc wybranie właściwej wersji serwera w panelu to cała naprawa.
Wersja MinecraftMinimalna wersja JavyMajor version klasy pliku w błędzie
26.1 i nowszeJava 2569
1.20.5 to 1.21.11Java 2165
1.18 to 1.20.4Java 1761
1.12 to 1.17Java 852

Przyczyna 3: pamięć jest źle skonfigurowana, a nie tylko za mała

Dwa różne błędy pamięci przerywają start i znaczą coś przeciwnego. „Could not reserve enough space for object heap” przy uruchomieniu oznacza, że w -Xmx zażądałeś więcej RAM, niż maszyna może ci dać, więc JVM nawet nie wystartuje. OutOfMemoryError w trakcie startu oznacza, że wartość jest za niska dla tego, co wczytujesz, a na dużym modpacku jest to bardzo łatwe.

Ustaw -Xmx na wartość, którą maszyna faktycznie ma, zostawiając zapas dla systemu operacyjnego i narzutu JVM, zamiast przydzielać każdy bajt. Na maszynie z 4 GB sensowne jest -Xmx3G, a -Xmx4G już nie. Vanilla potrzebuje co najmniej 2 GB, średni modpack chce 8 GB, a ciężki 16 GB lub więcej.

Częsty, sam sobie zafundowany wariant tego problemu to kopiowanie skryptu startowego z poradnika napisanego dla innej maszyny. Jeśli twój skrypt ma -Xmx8G, a maszyna ma 4 GB, serwer nigdy nie wystartuje, bez względu na to, co jeszcze naprawisz.

Przyczyna 4: port jest już zajęty

„FAILED TO BIND TO PORT” lub „Address already in use” oznacza, że port zajmuje coś innego, a w dziewięciu przypadkach na dziesięć tym czymś jest poprzednia instancja twojego serwera, która nie wyłączyła się czysto. Sprawdź, czy nie ma zabłąkanego procesu java, zakończ go i dopiero wtedy uruchom serwer ponownie.

Drugi przypadek to dwa serwery skonfigurowane na ten sam port. Java Edition domyślnie używa TCP 25565, a Bedrock UDP 19132, więc jeśli uruchamiasz oba na jednej maszynie, nie kolidują, ale dwa serwery Java już tak. Zmień server-port w server.properties dla drugiego.

Na hostingu zarządzanym każde wdrożenie dostaje własny port, więc ta klasa awarii znika. To problem hostingu samodzielnego.

Przyczyna 5: mod lub plugin psuje start

Jeśli log kończy się śladem stosu z nazwą pliku w plugins/ lub mods/, to znalazłeś problem. Typowe przyczyny to plugin zbudowany dla innej wersji Minecrafta, brakująca zależność moda lub dwa mody, które nie mogą działać razem. Ma znaczenie też oprogramowanie serwera: plugin Bukkit nie działa na vanilli, a mod Forge nie działa na Fabricu.

Gdy stack trace nie wskazuje nic użytecznego, zrób bisekcję. Przenieś wszystko z folderu, potwierdź, że serwer startuje czysto, a potem dodaj połowę z powrotem i zrestartuj. Cztery lub pięć takich rund wyizoluje każdy konflikt, bez względu na rozmiar paczki, i jest to znacznie szybsze niż czytanie changelogów.

Po aktualizacji wersji Minecraft zakładaj, że każdy plugin potrzebuje pasującej aktualizacji. Podbicie pliku jar serwera przy pozostawieniu pluginów w starej wersji to najczęstszy powód, dla którego działający serwer przestaje się uruchamiać.

Gdy serwer się uruchamia, ale nikt nie może dołączyć

To inny problem, a log będzie czysty. Serwer, który uruchamia się do „Done”, działa; jeśli gracze nie mogą się połączyć, problem tkwi w adresie, przekierowaniu portu lub online-mode. Sprawdź, czy podajesz ludziom pełny adres z portem i czy przekierowany port zgadza się z server-port w server.properties.

Na FluxCraft twój serwer ma własny publiczny adres na domenie yourserver.app.runonflux.io, więc nie ma tu routera i nie trzeba niczego przekierowywać.

Lista kontrolna do przejścia

Po kolei, bo każdy krok wyklucza te następne:

  • Otwórz logs/latest.log i przeczytaj ostatnie dwadzieścia linii. Porównaj je z tabelą na górze tej strony.
  • Upewnij się, że eula.txt zawiera eula=true.
  • Uruchom „java -version” i sprawdź wynik z tabelą wersji powyżej.
  • Sprawdź, czy -Xmx w skrypcie startowym jest wyraźnie poniżej fizycznej pamięci RAM maszyny.
  • Poszukaj obcego procesu java, który trzyma port, i upewnij się, że żaden drugi serwer go nie współdzieli.
  • Jeśli w śladzie (trace) wymieniony jest mod lub plugin, usuń go. Jeśli nic nie jest wymienione, zawęź folder metodą bisekcji.
  • Po aktualizacji wersji zaktualizuj każdy plugin i mod do pasującej wersji, zanim zaczniesz szukać winy gdzie indziej.

Serwer, który startuje za każdym razem

Właściwa wersja Javy, zaakceptowana EULA, ustawiona pamięć i otwarty port, zrobione za ciebie. Wybierz poziom RAM i wdróż w mniej niż 30 sekund, a konsola i logi są o jedno kliknięcie. Pierwszy tydzień za darmo.

Najczęściej zadawane pytania

Dlaczego mój serwer Minecraft nie chce wystartować?

W niemal każdym przypadku chodzi o jedną z pięciu rzeczy: EULA nie została zaakceptowana, wersja Javy jest za stara dla pliku serwera, -Xmx żąda więcej pamięci, niż maszyna ma, inny proces zajmuje port, albo plugin lub mod rzuca wyjątek podczas ładowania. Ostatnie linie logs/latest.log wskazują, która to przyczyna.

Co oznacza „Unsupported class file major version”?

Plik serwera został skompilowany pod nowszą Javę niż ta, która go uruchamia. Major version 69 oznacza Javę 25, 65 to Java 21, 61 to Java 17, a 52 to Java 8. Zainstaluj pasującą wersję i wskaż skrypt startowy bezpośrednio na nią, zamiast polegać na PATH.

Mój serwer od razu się zamyka bez błędu. Co jest nie tak?

Przy pierwszym uruchomieniu niemal zawsze chodzi o EULA. Serwer zapisuje eula.txt, wyświetla komunikat o zaakceptowaniu licencji Mojang i kończy działanie. Ustaw eula=true i uruchom ponownie. Jeśli to nie pierwszy start, przeczytaj logs/latest.log, bo coś jest wypisywane, nawet jeśli okno zamyka się zbyt szybko, żeby to zobaczyć.

Jak naprawić "Could not reserve enough space for object heap"?

Zmniejsz wartość -Xmx w skrypcie startowym. Ten błąd oznacza, że poprosiłeś JVM o więcej pamięci, niż maszyna może dać, więc serwer nigdy nie wystartuje. Zostaw zapas dla systemu operacyjnego: na maszynie z 4 GB działa -Xmx3G, a -Xmx4G nie.

Jak znaleźć mod, który wywala mój serwer?

Przeczytaj najpierw stack trace na końcu latest.log, bo zwykle wskazuje plik. Jeśli tego nie robi, zrób bisekcję: opróżnij folder mods, potwierdź czysty start, a potem dodawaj połowę z powrotem po kawałku. Cztery lub pięć restartów wyizoluje każdy konflikt, niezależnie od rozmiaru paczki.

Mój serwer przestał startować po aktualizacji Minecrafta. Dlaczego?

Pluginy i mody są budowane pod konkretną wersję Minecrafta i nie przenoszą się same. Aktualizacja pliku serwera bez aktualizacji modów to najczęstszy sposób, w jaki działający serwer się psuje. Zaktualizuj każdy plugin i mod do wersji pasującej do nowej wersji i sprawdź, czy zmieniło się też wymaganie co do Javy.

Co oznacza „FAILED TO BIND TO PORT”?

Na porcie, którego chce serwer, już coś nasłuchuje. Zwykle jest to poprzednia instancja tego samego serwera, która się nie wyłączyła; zakończ zabłąkany proces java. Jeśli uruchamiasz dwa serwery Javy na jednej maszynie, zmień server-port w server.properties dla drugiego.

Powiązane przewodniki: Minecraft