MC Toolkit

Guides / Server & Performance

How to make a Minecraft server: Java 25, the EULA and the whitelist

Setting up the official 26.3 Java server step by step: it needs Java 25, stops once for the EULA, and now ships with the whitelist switched on.

The official Minecraft: Java Edition server is a single free file, server.jar, from Mojang's server download page at minecraft.net/download/server. For 26.3 it is the same jar Mojang's version manifest lists: 62,294,556 bytes, SHA-1 beginning 33680f5f. Setting it up takes five steps.

1. Install Java 25

26.3 is compiled for Java 25 — the version file inside the jar says "java_version": 25, and its class files are version 69. The Minecraft Launcher brings its own Java for the game, but a server runs on whatever java your system has. With an older Java the server refuses to start with an UnsupportedClassVersionError that mentions class file version 69. Check with:

java -version

2. Give it a folder and run it once

Put server.jar in an empty folder — on first start it unpacks its libraries there and writes its world, logs and settings next to them — and start it:

java -Xms2G -Xmx4G -jar server.jar nogui

nogui skips the server's own window and keeps everything in the console. The memory flags set the starting and maximum heap; 2 and 4 GB are the same values the launcher uses for the 26.3 client, a sensible start for a few friends.

This first run stops almost at once. The server has written eula.txt with eula=false and prints: "You need to agree to the EULA in order to run the server." Nothing loads until you agree. (Starting it with --initSettings writes both files and quits on purpose, if you want to edit settings before the world is created.)

3. Accept the EULA

Open eula.txt, read the licence it links to (https://aka.ms/MinecraftEULA), and change the line to:

eula=true

Run the same start command again. This time it generates the world and ends with a line saying it is done.

4. Check server.properties — the whitelist is on

server.properties now exists, and its defaults are read from the 26.3 server code:

settingdefault
server-port25565
max-players20
gamemode / difficultysurvival / easy
view-distance / simulation-distance10 / 10
online-modetrue — players need a real Minecraft account
white-listtrue
pause-when-empty-seconds60

The whitelist default is the one that surprises people: 26.3 creates new servers with white-list=true. Your friends will be turned away with "You are not white-listed on this server!" until you add them. In the server console (no slash needed there):

whitelist add FriendName
op YourName

Operators are always let in, whitelist or not — so once you have opped yourself, testing alone never shows the problem your friends will hit. Set white-list=false if you would rather keep the server open.

5. Let people connect

whoaddress to type
you, on the same PClocalhost
someone on your home networkthe server PC's local IP, e.g. 192.168.1.20
someone over the internetyour public IP, after forwarding TCP port 25565 on the router to the server PC

A different port goes after a colon — 192.168.1.20:25570 — and has to match server-port. If a friend on the same network still cannot connect, a common cause is the computer's firewall blocking Java, not Minecraft.

Stop the server by typing stop in the console: it saves the world and shuts down cleanly.

With pause-when-empty-seconds at 60, an empty server stops ticking a minute after the last player leaves: crops and furnaces wait for someone to come back.

The start command is where most tuning happens. The Server Config Generators write JVM flags sized to your player count, a start script, eula.txt and proxy configs, so the files above come out right the first time.

Server Config Generators →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.