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 Version | Java Version | Compatible Engines |
|---|---|---|
| Minecraft 1.20.5 to Latest | Java 21 / Java 25 | Vanilla, Paper, Fabric, NeoForge |
| Minecraft 1.18 to 1.20.4 | Java 17 | Vanilla, Paper, Fabric, Forge |
| Minecraft 1.17 to 1.17.1 | Java 16 | Vanilla, Paper, Fabric |
| Minecraft 1.12 to 1.16.5 | Java 11 / Java 8 | Vanilla, Paper, Forge |
| Minecraft 1.8.8 to 1.11.2 | Java 8 | Vanilla, Paper, Classic Forge |
Automated Adoptium JRE Provisioning
When an instance requires a Java runtime that is not yet installed locally:
- PocketMC queries the Adoptium API for Windows x64 HotSpot packages (
image_type=jre). - If a standalone JRE is unavailable for that release, it falls back to the full JDK package.
- Network requests use an exponential retry policy (2s, 5s, 10s delays across 3 attempts).
- Downloads are saved to
runtimes/java-{version}/and verified by runningjava -versionagainst 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.