# How to Change the Java Version on Your Minecraft Server (/docs/minecraft/java-version)



import { Step, Steps } from 'fumadocs-ui/components/steps';

Different Minecraft versions require different Java versions. Running the wrong Java version is the **#1 cause** of "server won't start" errors after a version change.

Java Requirements by Minecraft Version [#java-requirements-by-minecraft-version]

| Minecraft Version   | Required Java | Notes                                                     |
| ------------------- | ------------- | --------------------------------------------------------- |
| **1.7.10 – 1.16.5** | Java 8        | Legacy modpacks (1.12.2, 1.7.10) need Java 8 specifically |
| **1.17 – 1.17.1**   | Java 16       | Brief transition version                                  |
| **1.18 – 1.20.4**   | Java 17       | Most common modern version                                |
| **1.20.5 – 1.21.x** | Java 21       | Current modern requirement                                |
| **1.21.5+**         | Java 21+      | Future versions may require Java 21 LTS                   |

> **Forge/NeoForge/Fabric note:** Mod loaders mostly follow vanilla's Java requirements, but some mods are stricter. Check the modpack documentation if a specific Java version is recommended.

Change the Java Version [#change-the-java-version]

<Steps>
  <Step>
    Stop the server [#stop-the-server]

    In the [XGamingServer Panel](https://panel.xgamingserver.com), go to **Console** and stop your server.
  </Step>

  <Step>
    Open Startup [#open-startup]

    Click **Startup** in the sidebar.
  </Step>

  <Step>
    Find the Java version selector [#find-the-java-version-selector]

    Look for **Java Version**, **Docker Image**, or **JVM** — the exact label varies. The dropdown lets you pick from supported Java versions.
  </Step>

  <Step>
    Select the right version [#select-the-right-version]

    Match your Minecraft version against the table above. Click the dropdown and select the corresponding Java version.
  </Step>

  <Step>
    Restart the server [#restart-the-server]

    Restart from **Console**. The server reboots with the new Java version.
  </Step>
</Steps>

Common Java Errors [#common-java-errors]

| Error                                            | Cause                                              | Fix                                      |
| ------------------------------------------------ | -------------------------------------------------- | ---------------------------------------- |
| `UnsupportedClassVersionError`                   | Java is **too old** for the Minecraft version      | Upgrade Java                             |
| `java.lang.reflect.InaccessibleObjectException`  | Java is **too new** for an older Minecraft version | Downgrade Java                           |
| `Could not reserve enough space for object heap` | Allocated more RAM than the system has             | Lower RAM allocation                     |
| `Error: A JNI error has occurred`                | Java/Minecraft version mismatch                    | Check version compatibility              |
| Server starts but immediately crashes            | Often Java version mismatch                        | Check **Console** for the specific error |

Verify the Active Java Version [#verify-the-active-java-version]

In **Console**, look for the startup log. The first few lines usually show:

```
[Server] Starting org.bukkit.craftbukkit.Main
[Server] Starting Minecraft server version 1.21.4
[Server] Loading libraries, please wait...
```

If the version is wrong or the server fails to start, you'll see Java-related errors instead.

Modded Servers and Java [#modded-servers-and-java]

| Loader               | Typical Java |
| -------------------- | ------------ |
| **Forge 1.12.2**     | Java 8       |
| **Forge 1.16.5**     | Java 8       |
| **Forge 1.18+**      | Java 17      |
| **Forge 1.20.5+**    | Java 21      |
| **NeoForge 1.20.4+** | Java 17      |
| **NeoForge 1.21+**   | Java 21      |
| **Fabric 1.18+**     | Java 17      |
| **Fabric 1.20.5+**   | Java 21      |

Java Memory Flags (Aikar's Flags) [#java-memory-flags-aikars-flags]

After setting the right Java version, use [Aikar's optimized JVM flags](/docs/minecraft/jvm-flags) to get the best garbage collection performance for Minecraft. These flags are version-aware — Java 17/21 uses different flags than Java 8.

Related Guides [#related-guides]

* [Switch Minecraft Version](/docs/minecraft/switch-version)
* [JVM Flags (Aikar's)](/docs/minecraft/jvm-flags)
* [How Much RAM](/docs/minecraft/how-much-ram)
* [Server Properties](/docs/minecraft/server-properties)
* [Performance Optimization](/docs/minecraft/optimize-server)
