Start here

Java & Runtimes

PocketMC downloads and isolates Eclipse Adoptium JRE builds and PHP binaries directly inside your application directory, avoiding system PATH edits and global version conflicts.

Version Compatibility Matrix

Minecraft versions require specific Java bytecode releases. PocketMC inspects server JAR manifests and assigns the matching Adoptium runtime:

Minecraft VersionJava VersionCompatible Engines
Minecraft 1.20.5 to LatestJava 21 / Java 25Vanilla, Paper, Fabric, NeoForge
Minecraft 1.18 to 1.20.4Java 17Vanilla, Paper, Fabric, Forge
Minecraft 1.17 to 1.17.1Java 16Vanilla, Paper, Fabric
Minecraft 1.12 to 1.16.5Java 11 / Java 8Vanilla, Paper, Forge
Minecraft 1.8.8 to 1.11.2Java 8Vanilla, Paper, Classic Forge

Automated Adoptium JRE Provisioning

When an instance requires a Java runtime that is not yet installed locally:

  1. PocketMC queries the Adoptium API for Windows x64 HotSpot packages (image_type=jre).
  2. If a standalone JRE is unavailable for that release, it falls back to the full JDK package.
  3. Network requests use an exponential retry policy (2s, 5s, 10s delays across 3 attempts).
  4. Downloads are saved to runtimes/java-{version}/ and verified by running java -version against the extracted executable.

Memory Limits & Hardware Allocation Checks

Before launching a server with custom heap limits (-Xms and -Xmx), PocketMC queries total and available physical RAM via the Windows API (GlobalMemoryStatusEx in kernel32.dll).

If your requested heap allocation exceeds 80% of total physical RAM or leaves insufficient memory for Windows system processes, PocketMC displays an allocation warning to prevent system freezing and out-of-memory crashes.

Custom Java Paths

If you prefer to use GraalVM, OpenJ9, or a pre-installed JDK binary already on your machine, open SettingsRuntimes and enter a direct file path to your chosen java.exe. PocketMC will validate the binary's version string before applying it to your instances.

PocketMine-MP (PHP 8.2 PM5)

PocketMine-MP runs on PHP rather than Java. PocketMC automatically downloads a Windows x64 PHP 8.2 binary package from the official pmmp/PHP-Binaries repository into runtime/php8.2/.

The runtime contains required extensions (such as pocketmine-chunkutils, curl, and yaml) configured for PM5. It runs entirely inside PocketMC's directory tree without adding PHP to your Windows PATH.