Jakiej Javy potrzebuje twój serwer Minecraft? (Java 25 dla 26.x)
Serwer Minecraft to program w Javie, a Java występuje w wersjach, które nie zawsze się dogadują. Mojang co kilka lat podnosi wymaganą wersję Javy i za każdym razem część serwerów ląduje na błędzie, który na pierwszy rzut oka nie ma z Javą nic wspólnego. Od Minecrafta 26.1 wymagana jest Java 25; kto ma serwer na 1.20.4, potrzebuje za to Javy 17, a nostalgiczny modpack na 1.12.2 chce Javy 8. Ten artykuł daje pełną tabelę, pokazuje, jak rozpoznać komunikat błędu i jak zmienić wersję Javy bez dotykania świata ani pluginów.
Tabela: wersja Minecrafta i pasująca Java
- 1.12.2 i starsze: Java 8. Nowsze Javy zwykle nie działają z Forge z tamtych czasów.
- 1.13 do 1.16.5: Java 8 to baza; Java 11 często też działa, ale modpacki Forge z tego okresu najbezpieczniej trzymać na 8.
- 1.17: minimum Java 16.
- 1.18 do 1.20.4: minimum Java 17. Java 21 na Paper zwykle działa, ale starsze pluginy i wersje Forge mogą się wywalić.
- 1.20.5 do 1.21.x: minimum Java 21.
- 26.1, 26.2 i 26.3: minimum Java 25. To obecne wymaganie; kto siedzi jeszcze na 1.21 i chce aktualizować, ma przed sobą oprócz nowej wersji serwera także upgrade Javy.
Zasada jest taka: używaj wersji, której Mojang wymaga jako minimum, albo najbliższej wersji LTS powyżej. Starsza Java niż wymagana nie zadziała nigdy; dużo nowsza czasem nie działa z pluginami albo modami, które sięgają do wnętrzności Javy.
Rozpoznawanie komunikatu błędu
Klasyczny komunikat przy zbyt starej Javie to java.lang.UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime (class file version 69.0), this version of the Java Runtime only recognizes class file versions up to 65.0. Liczba po "class file version" zdradza wymaganie: 52 to Java 8, 61 to Java 17, 65 to Java 21, 69 to Java 25. Jeśli widzisz taką linijkę w konsoli, serwer działa na zbyt starej Javie.
Sytuację odwrotną — zbyt nową Javę — trudniej rozpoznać. Forge 1.12 albo 1.16 pada wtedy z komunikatami o ClassCastException, module java.base does not export albo Unable to make ... accessible. Wtedy też rozwiązaniem nie jest mod, tylko wersja Javy.
Sprawdzanie wersji Javy
W konsoli serwera przy starcie zwykle jest linijka w rodzaju Starting minecraft server version 26.2, a za nią informacje o środowisku uruchomieniowym; Paper podaje wersję Javy wprost w pierwszych linijkach. Na serwerze hostowanym wersję Javy wybierasz w panelu, a polecenie java -version w sesji SFTP albo w konsoli pokazuje, co jest aktywne. W MC-Node Javę wybierasz dla każdego serwera w panelu: zmiana wersji Javy. Na VPS-ie instalujesz wybraną wersję sam; poradnik to instalacja Javy na VPS.
Zmiana Javy bez szkód
Zmiana Javy nie rusza twojego świata: zapis, pluginy i konfiguracja są niezależne od środowiska. Zawieść może tylko plugin albo mod, który polegał na starej Javie. Dlatego zrób to tak:
- Zrób backup całego folderu serwera.
- Wyłącz serwer, zmień wersję Javy w panelu (albo na VPS-ie) i uruchom ponownie.
- Przeczytaj pierwsze trzydzieści linijek konsoli: błędy Javy pojawiają się tam, nie w połowie.
- Przetestuj pluginy siedzące najgłębiej w serwerze: uprawnienia, ekonomię, zarządzanie światem.
- Jeśli coś pójdzie nie tak, wróć do poprzedniej wersji; świat jest nietknięty.
Java 25 i wersje 26.x: co się zmienia
Od 26.1 serwer działa na Javie 25, a 26.2 i 26.3 utrzymują to wymaganie. Kto jest już na 26.2, przy 26.3 nie zmienia nic w Javie. Kto przechodzi z 1.21, musi zrobić dwie rzeczy naraz: zaktualizować środowisko Javy i przenieść oprogramowanie serwera oraz pluginy na wersję 26.x. Nie rób tego w dniu premiery: Paper, Purpur i duże pluginy potrzebują zwykle tygodnia po nowej wersji Minecrafta. Co zmienia się w samym 26.3 i które datapacki się psują, opisujemy w Minecraft 26.3 a twój serwer.
Java na VPS-ie: kilka wersji obok siebie
Jeśli na jednym VPS-ie masz kilka serwerów, często potrzebujesz dwóch wersji Javy naraz: 17 do starego modpacka i 25 do serwera 26.x. Da się to bez zachodu: każdą wersję instalujesz w osobnym folderze (na przykład z pakietów Adoptium albo dystrybucji), a w skrypcie startowym każdego serwera używasz pełnej ścieżki do właściwego java zamiast samego polecenia. Wtedy o wersji decyduje skrypt, a nie domyślne ustawienie systemu. Po aktualizacji systemu sprawdź jednak, czy domyślna Java się nie przełączyła; apt upgrade potrafi przestawić symlink i serwer startuje z niewłaściwą wersją.
Pamięć i opcje Javy
Oprócz wersji konfiguracja Javy określa, ile pamięci serwer może użyć: opcje -Xms i -Xmx ustawiają dolną i górną granicę. Na serwerze hostowanym panel robi to na podstawie RAM z twojego pakietu; na VPS-ie ustawiasz to sam i zostawiasz około 1 GB dla systemu. Popularne "Aikar's flags" dla garbage collectora nadal świetnie działają na Javie 21 i 25 i zapobiegają przycięciom, które daje domyślna konfiguracja przy dużych światach.
W skrócie
- 26.x: Java 25. 1.20.5 do 1.21: Java 21. 1.18 do 1.20.4: Java 17. 1.17: Java 16. 1.16 i starsze: Java 8.
- "class file version 69" w błędzie oznacza: serwer chce Javy 25.
- Zmiana nie rusza świata; mimo to zrób backup i przeczytaj pierwsze linijki konsoli.
- Zaktualizuj Javę przed przejściem na 26.x, ale nie w dniu premiery nowej wersji Minecrafta.
- Tani hosting Minecraft: na co naprawdę zwracać uwagę przy porównaniu
- Zarabianie na serwerze Minecraft: co pozwala EULA, a czego nie