MC Toolkit

Poradniki / Rozwiązywanie problemów

Kod wyjścia to nie powód awarii, to wzruszenie ramion

Liczba nie mówi ci nic. Linijka nad nią mówi wszystko — i już leży w twoim folderze z logami.

Serwer Java, który pada, wypisuje Exit Code 1 i się zatrzymuje. To cała wiadomość. Kod wyjścia 1 oznacza „proces zakończył się nieprawidłowo" — to kategoria, nie przyczyna, i obejmuje wszystko od brakującego folderu świata po moda, który rzuca wyjątkiem podczas ładowania klas.

Gdzie mieszka prawdziwa odpowiedź

Kod wyjścia to ostatnia linijka logs/latest.log. Przyczyna jest w linijkach przed nim. Czytaj od końca wstecz, aż trafisz na pierwszy Exception, Caused by: lub Failed to. Ta linijka wskazuje klasę, moda albo plik.

[Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoSuchMethodError: net.minecraft.world.level.Level.getBiome
    at com.example.mod.ExampleMixin.inject(ExampleMixin.java:41)
Caused by: java.lang.NoClassDefFoundError: com/example/lib/Helper

NoClassDefFoundError to tutaj brakująca zależność, a nie uszkodzony świat. Kod wyjścia nie powiedział ci o tym nic.

Kody wyjścia, które faktycznie zobaczysz

KodZwykłe znaczenie
0Czyste zamknięcie — /stop albo zaplanowany restart
1Nieobsłużony wyjątek albo JVM odmówiła startu
137Zabity przez system, prawie zawsze przez OOM killer
143SIGTERM — orkiestrator kontenerów go zatrzymał

Kod 137 to ten, który ludzie błędnie odczytują jako awarię. JVM nie zawiodła; coś poza nią uznało, że proces zużył za dużo pamięci.

Java i Bedrock to nie ten sam problem

Serwer Bedrock zapisuje bedrock_server.log i w ogóle nie emituje kodu wyjścia w stylu Java — zrzuca raport crash handlera ze stack trace'em i linijką Crash report. Porady pisane pod logi Java nie przełożą się na niego.

Zmodyfikowane paczki padają inaczej

Z modami pierwszy wyjątek jest często objawem. Mixin, który nie chce się zaaplikować, produkuje kaskadę, w której prawdziwym winowajcą jest pierwsza linijka Mixin apply failed, a nie NoSuchMethodError trzydzieści linijek dalej. Przeszukaj log pod kątem Mixin, zanim zaczniesz szukać Exception.

Sprawdzanie, czy serwer żyje

Log mówi ci, dlaczego padł. Nie mówi, czy żyje teraz. Sprawdzenie TCP na porcie serwera odpowiada na to jednym żądaniem i działa tak samo dla Java i Bedrock, bo oba gadają przez socket.

Wklej log do narzędzia Server Diagnostics, żeby wyciągnęło feralną linijkę, i wskaż mu swój host, by potwierdzić, że serwer faktycznie odpowiada.

Server Diagnostics →

Więcej poradników

Zobacz wszystkie →

Szukasz innych narzędzi do Minecrafta?

Zestaw generatorów, podglądów i konwerterów działających w przeglądarce — wszystkie za darmo.