Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Java

Co je to Java

Java je programovací jazyk, ve kterém je Minecraft (Java Edition) napsaný. K tomu, aby bylo možné Java aplikaci (kterou Minecraft je) spustit, je zapotřebí prostředí, které aplikaci sputit umožní. Takové prostředí se nazývá JRE (Java Runtime Environment), někdy zjednodušeně nazýváno jen jako “Java”.

Instalace

V případě, kdy využíváte službu Minecraft hostingu, Java by již měla být dostupná a administrace by měla umožnit nastavení její verze.

Pokud však server, na kterém Minecraft server běží, spravujete sami (ať už na vlastním počítači, VPS, nebo dedikovaném serveru), je nutno Javu nainstalovat.

Jakou verzi Javy pro platformu Vášeho serveru zvolit naleznete zde.

Podrobný návod, jak Javu nainstalovat, naleznete na následujícím odkaze https://docs.papermc.io/misc/java-install.

Verze Javy

Doporučené verze Javy pro verze serveru jsou následující:

Verze serveruDoporučená verze Javy
>= 1.17.1Java 21
1.16.5Java 16
1.12 to 1.16.4Java 11
1.8 to 1.11Java 8

Na určitých verzích je důležité dát si pozor:

  • Forge verze 1.16.5 a nižší vyžaduje Javu verze 8. V případě využití vyšší verze Javy se server zhroutí.
  • U starých verzí (1.7.10, 1.8.8) je při použití verze Javy novější než 8 na OS Linux zapotřebí vypnout use-native-transport v server.properties. Pokud tato možnost zůstane zaplá, server pravděpdobně začne log spamovat a místo na disku se velice rychle zaplní (jedná se o gigabajty za malou chvilku).

Pokud server spravujete sami a nevíte, jaká verze Javy je využívána, můžete to zjistit v příkazovém řádku pomocí příkazu java -version.

Java flagy

Java flagy jsou flagy, které ovlivňují vlastnosti samotné Javy (JVM) vč. jejího garbage collectoru. Nastavení těchto flagů má vliv na výkon a plynulý chod serveru.

Proto je doporučováno používat tzv. Aikar flagy. Více o nich se dočtete zde: https://docs.papermc.io/paper/aikars-flags

Spouštěcí příkaz

Java aplikace se standardně spouští příkazem v příkazovém řádku. Nejjednodušší příkaz pro spuštění Java aplikace vypadá následovně.

java -jar file.jar

kde java je samotný Java příkaz, -jar parametr, který značí, že bude spuštěn .jar soubor a file.jar je název souboru, který bude spuštěn. Pozor! Pokud název spouštěného souboru obsahuje mezeru, je potřeba jej dát do uvozovek (jinak nastane chyba), tedy například: java -jar "paper 1.18.2" nogui

Před názvem spouštěného souboru jsou Java flagy (kterým je i samotný -jar flag). Tyto flagy upravují chování samotné Javy (JVM) vč. jejího garbage collectoru. V tomto příkladu flag Xmx slouží k nastavení maximální paměti heap. V příkladu níže to je 8192 MB.

java -Xmx8192M -jar server.jar --nogui

Za názvem souboru jsou flagy samotného programu, v tomto případě --nogui, který vypne výchozí server GUI.

Pozor! Java flagy musí být před názvem souboru a flagy programu za ním. Následující příkaz není správný a vrátí chybu.

java --nogui server.jar -jar -Xmx8192M -Xms8192M

Nepoužití správných Java flagů má negativní dopad na výkon serveru, více se dočtete zde. Pro vygenerování optimálního spouštěcího příkazu můžete využít tuto sránku: https://docs.papermc.io/misc/tools/start-script-gen

Co je to Java GC (garbage collector)

Java GC se stará o správu paměti Java aplikací.

Více o jeho chování si můžete přečíst zde.

JRE vs JDK

JRE (Java Runtime Environment) je prostředí, které umožňuje běh Java programů (kterým samotný Minecraft server je).

JDK (Java Development Kit) obsahuje nástroje pro vývoj aplikací pro platformu Java. Pokud JDK využíváte, můžete jej bez problému použít i pro běh Minecraft serveru, jelikož JRE je v JDK obsaženo.

Pokud tedy neplánujete aplikace v Javě na stroji kde server běží vyvíjet, zvolte Javu JRE, v opačném případě Javu JDK.

Více verzí Javy na jednom stroji

Na jednom stroji lze bez problému používat více verzí Javy.

V spouštěcím příkazu stačí místo samotného příkazu java použít umístění spustitelného souboru Javy. Tedy místo

java -Xmx4G -Xms4G -jar paper.jar --nogui

lze například použít

/usr/lib/jvm/java-21-openjdk/bin/java -Xmx4G -Xms4G -jar paper.jar nogui

nebo

"C:\Program Files\Java\jdk-21\bin\java.exe" -Xmx4G -Xms4G -jar paper.jar nogui

Příkaz java totiž pouze spustí spustitelný soubor. Kde se tento soubor pro aktuální příkaz java nachází můžete zjistit příkazem which java (Linux/macOS), nebo where java (Windows).

Pokud cesta k spustitelnému souboru Javy obsahuje mezeru (např. na operačním systému Windows kvůli složce ‘Program Files’), je potřeba jej uzavřít do uvozovek. V opačném případě nastane chyba, jako například 'C:\Program is not recognized as an internal or external command.'.

Ostatní

V případě využití 32bitové verze Javy lze využít maximálně 4 GB RAM.