Komunikat błędu już zawiera odpowiedź: jeśli widzisz tam class file version 65.0, plik wymaga Java 21. Rachunek jest zawsze taki sam: liczba minus 44 daje wersję Java. Ważniejsze od samej liczby jest jednak pytanie, czyjego pliku dotyczy komunikat: w większości przypadków to nie serwer jest za stary, tylko pojedynczy plugin jest za nowy.
Jak odczytać komunikat
Typowa linia wygląda tak:
java.lang.UnsupportedClassVersionError: com/example/PluginMain has been compiled by a more
recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime
only recognizes class file versions up to 61.0
Są w niej trzy informacje:
com/example/PluginMain— kto powoduje błąd. Jeśli pojawia się tu nazwa pluginu albo moda, oznacza to: ten jeden plik nie pasuje, sam serwer jest w porządku.class file version 65.0— czego wymaga plik: 65 − 44 = Java 21.only recognizes … up to 61.0— co aktualnie działa: 61 − 44 = Java 17.
W praktyce: plugin zbudowany dla Java 21 leży na serwerze, który działa na Java 17.
Tabela przeliczeń
| class file version | Wersja Java |
|---|---|
| 52.0 | Java 8 |
| 55.0 | Java 11 |
| 60.0 | Java 16 |
| 61.0 | Java 17 |
| 65.0 | Java 21 |
| 69.0 | Java 25 |
Liczby pochodzą z oficjalnej specyfikacji JVM. Różnica 44 jest tam stała od Java 1.0, więc każdą przyszłą wersję możesz policzyć samodzielnie bez rozszerzania tabeli.
Zapamiętaj: środowisko uruchomieniowe Java rozumie zawsze wszystkie starsze wersje plików klas, ale nigdy nowszą. Dlatego plugin dla Java 8 działa bez problemu na Java 21, ale odwrotnie już nie.
Jakiej wersji Java potrzebuje dana wersja Minecraft?
| Wersja Minecraft | Wymagana Java |
|---|---|
| do 1.16.5 | Java 8 |
| 1.17 – 1.17.1 | Java 16 (w praktyce Java 17) |
| 1.18 – 1.20.4 | Java 17 |
| od 1.20.5 | Java 21 |
| od 26.0 | Java 25 |
U nas nie musisz tego ustawiać. Wyprowadzamy środowisko uruchomieniowe z wersji Minecraft twojego serwera i ustawiamy je automatycznie. Jeśli zamawiasz 1.21, dostajesz Java 21 bez szukania przełącznika.
Dla forków serwera takich jak Leaf i Leaves utrzymujemy dodatkowo dokładne przypisanie dla każdego wydania, zamiast przejmować ogólną regułę. Powód: fork może odbiegać od wymagań Vanilla, a optymistyczne założenie zawiodłoby dokładnie wtedy, gdy ma to znaczenie. Jeśli dla danej kombinacji nie ma pasującej Java, celowo przerywamy proces zamiast uruchamiać zbyt niskie środowisko — serwer, który w ogóle nie startuje błędnie, łatwiej naprawić niż taki, który działa tylko częściowo.
Najczęstszy przypadek: plugin, nie serwer
Jeśli twój serwer jeszcze przed chwilą działał, a błąd pojawił się po dodaniu pliku, sprawa jest jasna. Postępuj tak:
- Zanotuj nazwę klasy z komunikatu. Prawie zawsze wskazuje projekt.
- Znajdź u dostawcy pasującą wersję buildu. Wiele pluginów oferuje osobne pliki do pobrania dla Java 17 i Java 21, często z dopiskiem
-java17albo jako osobną gałąź wydań. Najnowszy plik nie jest automatycznie właściwy. - Jeśli nie ma pasującej wersji, potrzebujesz nowszej wersji Minecraft — bo dopiero ona przynosi nowsze środowisko uruchomieniowe. Jak zmienić wersję bez utraty świata, opisujemy w Zmiana wersji Minecraft Server.
- Na razie usuń plugin, jeśli serwer musi pilnie działać. Jak poprawnie dodawać i usuwać pluginy, pokazuje Instalacja modów i pluginów Minecraft.
Drugi przypadek: Java jest zbyt nowa
Ten przypadek rzadko się wyjaśnia, ale pojawia się regularnie. Stare modpacki Forge — klasykiem jest 1.12.2 — są zbudowane dla Java 8. Na Java 21 padają, zwykle jednak nie z UnsupportedClassVersionError, tylko z komunikatami o brakujących klasach wewnętrznych albo odrzuconych parametrach startowych.
Wskazówka: paczka działała wcześniej albo działa u innych, a twój serwer podaje bardzo starą wersję Minecraft. Rozwiązaniem nie jest wtedy nowsza Java, tylko wersja Minecraft należąca do tej paczki w panelu — wtedy ustawiamy pasujące starsze środowisko.
Uczciwa uwaga: nasza automatyczna korekta nie działa w tym przypadku. Naprawia wyłącznie kierunek „za stare”, czyli sytuację, gdy serwer potrzebuje nowszej Java niż uruchomiona. Zbyt nowa Java celowo nie jest traktowana jako drift — inaczej klient, który świadomie wybrał starsze środowisko, automatycznie znowu by je stracił.
Co przejmujemy automatycznie
- Pasujące środowisko od zamówienia. Wersja Java podąża za wersją Minecraft, bez ustawień.
- Korekta przy zmianie wersji. Jeśli przełączasz na wersję z wyższym wymaganiem Java, środowisko zostaje dopasowane.
- Boot log ma pierwszeństwo przed obliczeniem. Jeśli twój serwer przy starcie sam podaje wymaganą wersję Java, która jest wyższa niż aktualna, korygujemy na podstawie tego pomiaru — nie na podstawie wyprowadzenia z zamówionej wersji. Informacja serwera o samym sobie jest bardziej wiarygodna niż każda tabela.
- Własne obrazy pozostają nietknięte. Jeśli twój serwer działa na samodzielnie wybranym środowisku, nie ingerujemy.
- Fail-closed zamiast półpoprawnie. Jeśli dla kombinacji nie istnieje pasująca Java, przerywamy i zgłaszamy to, zamiast uruchamiać błędne środowisko.
Rozwiązywanie problemów
| Objaw | Sprawdzenie | Rozwiązanie |
|---|---|---|
Podano class file version 65.0, nazwa klasy to plugin |
Czy serwer działał przed dodaniem pliku? | Pobierz build pluginu dla swojej wersji MC |
| Błąd od razu przy starcie serwera, bez wskazania pluginu | Jaka wersja Minecraft działa? | Dopasuj wersję i środowisko |
| Stary modpack 1.12.2 nie startuje | Czy log podaje brakujące klasy wewnętrzne? | Java jest zbyt nowa — wybierz pasującą wersję MC |
| Błąd po zmianie wersji | Czy pojawił się bezpośrednio po zmianie? | Poczekaj na restart; jeśli zostaje, skontaktuj się z supportem i podaj pełną linię |
| Plugin się ładuje, ale brakuje funkcji | Czy w logu jest ostrzeżenie zamiast błędu? | Inna przyczyna — nie wersja Java |
FAQ
Czy mogę samodzielnie zmienić wersję Java?
U nas nie jest to potrzebne: wynika ona z wersji Minecraft twojego serwera. Jeśli potrzebujesz innego środowiska, właściwą drogą jest zmiana wersji Minecraft — wtedy całe otoczenie pasuje do siebie.
Czy nowsza Java zawsze jest lepsza?
Nie. Dla Minecraft wymagana wersja jest jednocześnie praktyczną górną granicą: rdzeń serwera, mody i pluginy są do niej dostrojone. Skok na wyższe środowisko „na wszelki wypadek” nie daje korzyści i psuje starsze mody.
Dlaczego mój plugin działa lokalnie, ale nie na serwerze?
Bo twoja lokalna instalacja Java może być nowsza niż ta na serwerze. Decydujące jest środowisko uruchomieniowe na serwerze, nie to na twoim komputerze.
Skąd wiem, na jakiej Java działa teraz mój serwer?
Komunikat ci to mówi: only recognizes class file versions up to 61.0 oznacza Java 17. Bez komunikatu błędu start serwera podaje wersję Java w pierwszych liniach konsoli.
Czy po zmianie Java muszę utworzyć świat od nowa?
Nie. Środowisko uruchomieniowe dotyczy tylko wykonywania programu, nie formatu świata. Zmiana wersji Minecraft może natomiast zmienić format świata — dlatego wcześniej zrób backup.
Następne kroki
Jeśli serwer znowu działa, ale jest wolny, pomoże Minecraft Server laguje: naprawa Watchdog Timeout. Jeśli pamięć RAM nie pasuje do rozmiaru modpacka, kalkulator RAM dla Minecraft obliczy zapotrzebowanie.
Szukasz serwera, na którym wersja Java automatycznie pasuje do wersji gry? Na Wynajem Minecraft Server znajdziesz taryfy.
Źródła i stanowisko testowe
- Wymagania Java dla poszczególnych wersji Minecraft: Minecraft Wiki — Server/Requirements. Wyraźnie podaje Java 16 od 1.17, Java 17 od 1.18 i Java 21 od 1.20.5.
- Przypisanie wersji class file: Oracle — The Java Virtual Machine Specification, Java SE 21, tabela 4.1-A. Potwierdza 52 = Java 8, 55 = Java 11, 60 = Java 16, 61 = Java 17, 65 = Java 21 oraz regułę, że JVM obsługuje tylko wymienione wersje i żadnych wyższych.
- Java 25: Oracle — The Java Virtual Machine Specification, Java SE 25, tabela 4.1-A. Potwierdza major 69.
Stanowisko testowe: 24 sierpnia 2026. Nowe wersje Minecraft mogą wprowadzać nowe wymagania Java; podlinkowane źródła są zawsze aktualnym stanem.