Every server guide starts with "install Java". Which Java is the part that quietly changed in March 2026.
The short answer
A Minecraft Java server on a rented VPS comes down to three decisions: the right Java, a sensible amount of RAM, and a service that brings the server back by itself. Minecraft 26.1 and later require Java 25 [2][3], and PaperMC lists Java 25 for 26.1 and newer as well [1]. On RAM the sources disagree because they describe different software: the Minecraft Wiki starts vanilla servers at 1 to 4 GB [4], while PaperMC recommends at least 6 to 10 GB "no matter how few players" [5]. Our assessment: for Paper, treat a plan with 8 GB as the smallest sensible start. For a small vanilla server with a few friends, 4 GB leaves room. Then watch your own world and adjust.
How it works
- Pick the Java first. PaperMC publishes a table of server versions and the Java they want: Java 17 for 1.17 to 1.19, Java 21 for 1.20 to 1.21.11, Java 25 for 26.1 and newer [1]. Mojang's release notes for 26.1 (24 Mar 2026) say the game now requires Java 25 [2], and the Minecraft Wiki names 26.3 as the current Java Edition version [4]. Three details trip people up. First, the PaperMC page opens with "requires at least Java 25", while its table still lists Java 21 for the 1.21 line [1]. The table is about the version you run, so read it with your exact version in hand. Second, the Minecraft Wiki's requirements page still lists the Java 21 step for 1.20.5 and does not mention 26.1, while its server tutorial states "Minecraft 26.1 or later requires Java 25" [3][4]. Third, older guides are simply from before the change. A German guide from 31 Oct 2025 tells readers to install
openjdk-21-jre-headless[17]. That was right for the 1.21 era. With a 26.x server jar, Java 21 is below the stated minimum. - Install a headless Java 25. "Headless" means a runtime without the graphical libraries; a server needs only the runtime, not the full JDK [3]. Ubuntu publishes
openjdk-25-jre-headlessfor 26.04 and, in the universe component, for 24.04 and 22.04 [8]. Debian builds the openjdk-25 source package in 13 (trixie) [9]. On other systems, the Eclipse Adoptium project documents a package repository with names liketemurin-25-jdk[10]. Check the result withjava -versionand look for 25. - Size the RAM from vendor rules, not from plan names. Three documented starting points, each for different software: [4] lists, for a vanilla server on default settings and a new world, 1 GB for 1 to 4 players, 2 GB for 5 to 10 and 4 GB for more; [3] says at least 2 GB for small servers and 4 GB for larger ones; [5] recommends 6 to 10 GB for Paper. The vanilla figures grow quickly with world age, redstone and mob farms [4]. PaperMC adds a rule that matters on a VPS: Java needs memory beyond the heap, so set
-Xmxand-Xmsabout 1,000 to 1,500 MB below the memory the host gives you. Its own example: an 8 GB host gets 6,500 MB [5]. PaperMC also warns that more memory stops helping at some point [5]. - Choose the VPS by criteria. The Minecraft Wiki's checklist for hosts applies to a raw VPS too: single-thread CPU speed, guaranteed versus shared resources, location close to your players, backups and refunds [3]. A Minecraft server mostly uses one core, so per-core speed beats core count [3][4]. Compare what vendors actually state. The table below uses only vendor pages, retrieved 24 Oct 2026. These are statements, not measurements, and neither provider names a clock speed for these plans.
- Create a user, fetch Paper, accept the EULA yourself. Run the server as its own unprivileged user. PaperMC's downloads service delivers builds over a REST API and demands a User-Agent header that identifies you with a contact address; generic
curlheaders are not accepted [7]. After the first start the server writeseula.txt; changingeula=falsetoeula=trueis your agreement with Mojang, so read it first and do it by hand [3]. - Run it as a service. A systemd unit starts the server at boot and restarts it after a crash [11]. A Java process that ends on SIGTERM exits with code 143, so
SuccessExitStatus=143stops systemd from calling a normal stop a failure [18]. One 2021 analysis of the decompiled 1.17.1 server found a shutdown hook that stops the server the same way thestopcommand does [18]. That is a third-party reading of an old version, so test it on yours: stop the service and look for the save messages in the journal. - Open exactly one port. Java Edition listens on TCP 25565 by default [3]. With
ufw, allow SSH before you enable the firewall, then allow the game port [12]. Also check the provider's own firewall panel, if it has one [15][16]. - Keep RCON and offline mode off the internet. The wiki warns that RCON is not encrypted and should ideally be reached from localhost only [13]. Leave
online-modeon, because switching it off lets players with fake accounts join [13]. Use the whitelist for a private server [3]. - Back up away from the machine. PaperMC names what to save: world folders, server configuration, plugin configuration and plugin JARs, as rolling copies in a safe place [6]. Provider snapshots help, but they live with the same provider. Keep one copy elsewhere (see the 3-2-1 article).
| Contabo Cloud VPS | Hostinger Game Panel | |
|---|---|---|
| Virtualisation | KVM, shared vCPU cores, fixed RAM [14] | not stated on the page we read [16] |
| CPU as named by the vendor | Core VPS: "multiple CPU generations"; Performance VPS: "latest AMD EPYC generations" [14] | "AMD EPYC processors", no model [16] |
| Smallest plans (vCPU / RAM) | 4 vCPU / 8 GB [14] | 1 vCPU / 4 GB, then 2 vCPU / 8 GB [16] |
| Firewall and DDoS | free firewall and DDoS protection with every Cloud VPS [15] | "built-in firewall and DDoS protection" [16] |
| Snapshots and backups | 1 to 3 snapshots on Core VPS; Auto Backup as an add-on [14][15] | automatic backups and a manual snapshot [16] |
| Shell access | full root access [15] | full root access; server types include Paper [16] |
| Term | introductory pricing "for the first 24 months" on some plans [15] | "all plans are paid upfront" for the chosen term [16] |
| Locations | 11 locations in 9 regions [14] | North America, South America, Europe, Asia [16] |
How to read it: Contabo sells a plain VPS, so you do steps 5 to 9 yourself. Hostinger's Game Panel is a panel on a VPS and installs a server type for you, so you skip some of the shell work and give up some control. The first is not better than the second; they fit different people. We have rented neither and rank neither. They appear because their pages state their specs openly. Bytearium may add partner links to some providers later. If we do, they are marked, and the criteria above do not change.
A worked example (calculation, not a test)
Say you want Paper for eight friends on a plan with 8 GB of RAM. We did not rent a server for this article, so this is arithmetic from the vendor rules above. PaperMC's example for an 8 GB host gives a 6,500 MB heap [5], which leaves about 1.7 GB for the operating system and Java's own overhead (8,192 minus 6,500 MB). The unit file below uses that value.
# /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms6500M -Xmx6500M -jar paper.jar --nogui
SuccessExitStatus=143
TimeoutStopSec=90
Restart=on-failure
RestartSec=10
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.targetThe setup around it, step by step:
sudo adduser --system --group --home /opt/minecraft minecraft
sudo apt install openjdk-25-jre-headless jq curl
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enable
sudo systemctl daemon-reload
sudo systemctl enable minecraftFetch the jar as the minecraft user (sudo -u minecraft ...) with PaperMC's documented endpoints: list the builds of your version at https://fill.papermc.io/v3/projects/paper/versions/<version>/builds, pick the first entry whose channel is STABLE, and download its downloads."server:default".url, always with your own descriptive User-Agent [7]. Run java -jar paper.jar --nogui once, set eula=true yourself, and only then start the service with sudo systemctl start minecraft; follow the log with journalctl -u minecraft -f. Test in this order: systemctl status minecraft, then ss -tln to see port 25565 listening, then join from a client, then sudo systemctl stop minecraft and read the journal for the world-saving lines. Run all of this on a throwaway server first.
Checklist
- Check your exact Minecraft or Paper version against PaperMC's Java table before you install anything [1].
- Install a headless Java 25 and confirm it with
java -version. - Calculate the heap as the plan's RAM minus 1,000 to 1,500 MB, and set
-Xmsequal to-Xmx[5]. - Compare plans on what the vendor states: virtualisation, shared or guaranteed resources, CPU wording, location [3][14].
- Read the term, the renewal and the refund window before you pay.
- Create a dedicated user, and run the server as a service with a restart rule.
- Allow SSH first, then only TCP 25565, in the host firewall and in the provider panel [12].
- Keep
online-modeon, use the whitelist, and keep RCON off the internet [13]. - Test a stop and a restart, and read the journal for the save messages.
- Store a copy of the world away from the VPS [6], and restore it once on another machine.