PS C:\Users\jared> winget install azul.zulu.17.jdk
I'm using C:\mcjava\
for my test.
PS C:\Users\jared> New-Item -Path "C:\mcjava" -ItemType directory
PS C:\Users\jared> Set-Location "C:\mcjava"
PS C:\mcjava> Invoke-WebRequest https://piston-data.mojang.com/v1/objects/c9df48efed58511cdd0213c56b9013a7b5c9ac1f/server.jar -OutFile minecraft_server.1.19.3.jar
This is the command recommended by https://www.minecraft.net/en-us/download/server.
PS C:\mcjava> java -Xmx1024M -Xms1024M -jar minecraft_server.1.19.3.jar nogui
Unpacking 1.19.3/server-1.19.3.jar (versions:1.19.3) to versions\1.19.3\server-1.19.3.jar
Unpacking com/github/oshi/oshi-core/6.2.2/oshi-core-6.2.2.jar (libraries:com.github.oshi:oshi-core:6.2.2) to libraries\com\github\oshi\oshi-core\6.2.2\oshi-core-6.2.2.jar
Unpacking com/google/code/gson/gson/2.10/gson-2.10.jar (libraries:com.google.code.gson:gson:2.10) to libraries\com\google\code\gson\gson\2.10\gson-2.10.jar
Unpacking com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar (libraries:com.google.guava:failureaccess:1.0.1) to libraries\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar
Unpacking com/google/guava/guava/31.1-jre/guava-31.1-jre.jar (libraries:com.google.guava:guava:31.1-jre) to libraries\com\google\guava\guava\31.1-jre\guava-31.1-jre.jar
Unpacking com/mojang/authlib/3.16.29/authlib-3.16.29.jar (libraries:com.mojang:authlib:3.16.29) to libraries\com\mojang\authlib\3.16.29\authlib-3.16.29.jar
Unpacking com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar (libraries:com.mojang:brigadier:1.0.18) to libraries\com\mojang\brigadier\1.0.18\brigadier-1.0.18.jar
Unpacking com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar (libraries:com.mojang:datafixerupper:5.0.28) to libraries\com\mojang\datafixerupper\5.0.28\datafixerupper-5.0.28.jar
Unpacking com/mojang/javabridge/2.0.25/javabridge-2.0.25.jar (libraries:com.mojang:javabridge:2.0.25) to libraries\com\mojang\javabridge\2.0.25\javabridge-2.0.25.jar
Unpacking com/mojang/logging/1.1.1/logging-1.1.1.jar (libraries:com.mojang:logging:1.1.1) to libraries\com\mojang\logging\1.1.1\logging-1.1.1.jar
Unpacking commons-io/commons-io/2.11.0/commons-io-2.11.0.jar (libraries:commons-io:commons-io:2.11.0) to libraries\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar
Unpacking io/netty/netty-buffer/4.1.82.Final/netty-buffer-4.1.82.Final.jar (libraries:io.netty:netty-buffer:4.1.82.Final) to libraries\io\netty\netty-buffer\4.1.82.Final\netty-buffer-4.1.82.Final.jar
Unpacking io/netty/netty-codec/4.1.82.Final/netty-codec-4.1.82.Final.jar (libraries:io.netty:netty-codec:4.1.82.Final) to libraries\io\netty\netty-codec\4.1.82.Final\netty-codec-4.1.82.Final.jar
Unpacking io/netty/netty-common/4.1.82.Final/netty-common-4.1.82.Final.jar (libraries:io.netty:netty-common:4.1.82.Final) to libraries\io\netty\netty-common\4.1.82.Final\netty-common-4.1.82.Final.jar
Unpacking io/netty/netty-handler/4.1.82.Final/netty-handler-4.1.82.Final.jar (libraries:io.netty:netty-handler:4.1.82.Final) to libraries\io\netty\netty-handler\4.1.82.Final\netty-handler-4.1.82.Final.jar
Unpacking io/netty/netty-resolver/4.1.82.Final/netty-resolver-4.1.82.Final.jar (libraries:io.netty:netty-resolver:4.1.82.Final) to libraries\io\netty\netty-resolver\4.1.82.Final\netty-resolver-4.1.82.Final.jar
Unpacking io/netty/netty-transport/4.1.82.Final/netty-transport-4.1.82.Final.jar (libraries:io.netty:netty-transport:4.1.82.Final) to libraries\io\netty\netty-transport\4.1.82.Final\netty-transport-4.1.82.Final.jar
Unpacking io/netty/netty-transport-classes-epoll/4.1.82.Final/netty-transport-classes-epoll-4.1.82.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.1.82.Final) to libraries\io\netty\netty-transport-classes-epoll\4.1.82.Final\netty-transport-classes-epoll-4.1.82.Final.jar
Unpacking io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.1.82.Final:linux-x86_64) to libraries\io\netty\netty-transport-native-epoll\4.1.82.Final\netty-transport-native-epoll-4.1.82.Final-linux-x86_64.jar
Unpacking io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.1.82.Final:linux-aarch_64) to libraries\io\netty\netty-transport-native-epoll\4.1.82.Final\netty-transport-native-epoll-4.1.82.Final-linux-aarch_64.jar
Unpacking io/netty/netty-transport-native-unix-common/4.1.82.Final/netty-transport-native-unix-common-4.1.82.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.1.82.Final) to libraries\io\netty\netty-transport-native-unix-common\4.1.82.Final\netty-transport-native-unix-common-4.1.82.Final.jar
Unpacking it/unimi/dsi/fastutil/8.5.9/fastutil-8.5.9.jar (libraries:it.unimi.dsi:fastutil:8.5.9) to libraries\it\unimi\dsi\fastutil\8.5.9\fastutil-8.5.9.jar
Unpacking net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar (libraries:net.java.dev.jna:jna:5.12.1) to libraries\net\java\dev\jna\jna\5.12.1\jna-5.12.1.jar
Unpacking net/java/dev/jna/jna-platform/5.12.1/jna-platform-5.12.1.jar (libraries:net.java.dev.jna:jna-platform:5.12.1) to libraries\net\java\dev\jna\jna-platform\5.12.1\jna-platform-5.12.1.jar
Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar
Unpacking org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar (libraries:org.apache.commons:commons-lang3:3.12.0) to libraries\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar
Unpacking org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.19.0) to libraries\org\apache\logging\log4j\log4j-api\2.19.0\log4j-api-2.19.0.jar
Unpacking org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.19.0) to libraries\org\apache\logging\log4j\log4j-core\2.19.0\log4j-core-2.19.0.jar
Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.19.0/log4j-slf4j2-impl-2.19.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.19.0) to libraries\org\apache\logging\log4j\log4j-slf4j2-impl\2.19.0\log4j-slf4j2-impl-2.19.0.jar
Unpacking org/joml/joml/1.10.5/joml-1.10.5.jar (libraries:org.joml:joml:1.10.5) to libraries\org\joml\joml\1.10.5\joml-1.10.5.jar
Unpacking org/slf4j/slf4j-api/2.0.1/slf4j-api-2.0.1.jar (libraries:org.slf4j:slf4j-api:2.0.1) to libraries\org\slf4j\slf4j-api\2.0.1\slf4j-api-2.0.1.jar
Starting net.minecraft.server.Main
[01:15:06] [ServerMain/INFO]: Building unoptimized datafixer
[01:15:07] [ServerMain/ERROR]: Failed to load properties from file: server.properties
[01:15:07] [ServerMain/WARN]: Failed to load eula.txt
[01:15:07] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
You will need to agree to the EULA.
Open the file in your text editor of choice.
- I use Visual Studio code, so
code
is the executable - Notepad ships with Windows, so
notepad
is usable
PS C:\mcjava> code .\eula.txt
Change the 3rd line, eula=false
, to eula=true
.
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Fri Jan 20 01:15:07 EST 2023
eula=false
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Fri Jan 20 01:15:07 EST 2023
eula=true
Save the file and close your text editor. Return to Terminal/PowerShell.
PS C:\mcjava> java -Xmx1024M -Xms1024M -jar minecraft_server.1.19.3.jar nogui
Starting net.minecraft.server.Main
[01:28:14] [ServerMain/INFO]: Building unoptimized datafixer
[01:28:15] [ServerMain/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[01:28:16] [ServerMain/INFO]: Loaded 7 recipes
[01:28:17] [ServerMain/INFO]: Loaded 1179 advancements
[01:28:17] [Server thread/INFO]: Starting minecraft server version 1.19.3
[01:28:17] [Server thread/INFO]: Loading properties
[01:28:17] [Server thread/INFO]: Default game type: SURVIVAL
[01:28:17] [Server thread/INFO]: Generating keypair
[01:28:17] [Server thread/INFO]: Starting Minecraft server on *:25565
[01:28:17] [Server thread/INFO]: Using default channel type
[01:28:17] [Server thread/INFO]: Preparing level "world"
[01:28:21] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[01:28:22] [Worker-Main-15/INFO]: Preparing spawn area: 0%
[01:28:22] [Worker-Main-15/INFO]: Preparing spawn area: 0%
[01:28:22] [Worker-Main-1/INFO]: Preparing spawn area: 0%
[01:28:22] [Worker-Main-10/INFO]: Preparing spawn area: 0%
[01:28:23] [Worker-Main-10/INFO]: Preparing spawn area: 0%
[01:28:23] [Worker-Main-15/INFO]: Preparing spawn area: 0%
[01:28:24] [Worker-Main-7/INFO]: Preparing spawn area: 0%
[01:28:24] [Worker-Main-13/INFO]: Preparing spawn area: 2%
[01:28:25] [Worker-Main-7/INFO]: Preparing spawn area: 2%
[01:28:25] [Worker-Main-5/INFO]: Preparing spawn area: 3%
[01:28:26] [Worker-Main-15/INFO]: Preparing spawn area: 5%
[01:28:26] [Worker-Main-15/INFO]: Preparing spawn area: 5%
[01:28:27] [Worker-Main-9/INFO]: Preparing spawn area: 6%
[01:28:27] [Worker-Main-10/INFO]: Preparing spawn area: 9%
[01:28:28] [Worker-Main-2/INFO]: Preparing spawn area: 9%
[01:28:28] [Worker-Main-11/INFO]: Preparing spawn area: 10%
[01:28:29] [Worker-Main-12/INFO]: Preparing spawn area: 12%
[01:28:29] [Worker-Main-1/INFO]: Preparing spawn area: 13%
[01:28:30] [Worker-Main-5/INFO]: Preparing spawn area: 15%
[01:28:30] [Worker-Main-6/INFO]: Preparing spawn area: 16%
[01:28:31] [Worker-Main-10/INFO]: Preparing spawn area: 17%
[01:28:31] [Worker-Main-5/INFO]: Preparing spawn area: 19%
[01:28:32] [Worker-Main-15/INFO]: Preparing spawn area: 21%
[01:28:32] [Worker-Main-7/INFO]: Preparing spawn area: 23%
[01:28:33] [Worker-Main-11/INFO]: Preparing spawn area: 23%
[01:28:33] [Worker-Main-6/INFO]: Preparing spawn area: 24%
[01:28:34] [Worker-Main-7/INFO]: Preparing spawn area: 26%
[01:28:34] [Worker-Main-7/INFO]: Preparing spawn area: 27%
[01:28:35] [Worker-Main-12/INFO]: Preparing spawn area: 29%
[01:28:35] [Worker-Main-15/INFO]: Preparing spawn area: 31%
[01:28:36] [Worker-Main-6/INFO]: Preparing spawn area: 32%
[01:28:36] [Worker-Main-13/INFO]: Preparing spawn area: 33%
[01:28:37] [Worker-Main-13/INFO]: Preparing spawn area: 35%
[01:28:37] [Worker-Main-12/INFO]: Preparing spawn area: 37%
[01:28:38] [Worker-Main-14/INFO]: Preparing spawn area: 39%
[01:28:38] [Worker-Main-11/INFO]: Preparing spawn area: 40%
[01:28:39] [Worker-Main-14/INFO]: Preparing spawn area: 42%
[01:28:39] [Worker-Main-2/INFO]: Preparing spawn area: 42%
[01:28:40] [Worker-Main-8/INFO]: Preparing spawn area: 45%
[01:28:40] [Worker-Main-7/INFO]: Preparing spawn area: 46%
[01:28:41] [Worker-Main-7/INFO]: Preparing spawn area: 49%
[01:28:41] [Worker-Main-10/INFO]: Preparing spawn area: 50%
[01:28:42] [Worker-Main-7/INFO]: Preparing spawn area: 51%
[01:28:42] [Worker-Main-11/INFO]: Preparing spawn area: 54%
[01:28:43] [Worker-Main-13/INFO]: Preparing spawn area: 55%
[01:28:43] [Worker-Main-8/INFO]: Preparing spawn area: 55%
[01:28:44] [Worker-Main-2/INFO]: Preparing spawn area: 57%
[01:28:44] [Worker-Main-13/INFO]: Preparing spawn area: 59%
[01:28:45] [Worker-Main-5/INFO]: Preparing spawn area: 60%
[01:28:45] [Worker-Main-14/INFO]: Preparing spawn area: 61%
[01:28:46] [Worker-Main-11/INFO]: Preparing spawn area: 62%
[01:28:46] [Worker-Main-14/INFO]: Preparing spawn area: 65%
[01:28:47] [Worker-Main-12/INFO]: Preparing spawn area: 66%
[01:28:47] [Worker-Main-10/INFO]: Preparing spawn area: 68%
[01:28:48] [Worker-Main-14/INFO]: Preparing spawn area: 69%
[01:28:48] [Worker-Main-15/INFO]: Preparing spawn area: 70%
[01:28:49] [Worker-Main-11/INFO]: Preparing spawn area: 72%
[01:28:49] [Worker-Main-6/INFO]: Preparing spawn area: 73%
[01:28:50] [Worker-Main-2/INFO]: Preparing spawn area: 74%
[01:28:50] [Worker-Main-12/INFO]: Preparing spawn area: 75%
[01:28:51] [Worker-Main-14/INFO]: Preparing spawn area: 79%
[01:28:51] [Worker-Main-3/INFO]: Preparing spawn area: 81%
[01:28:52] [Worker-Main-5/INFO]: Preparing spawn area: 82%
[01:28:52] [Worker-Main-12/INFO]: Preparing spawn area: 83%
[01:28:53] [Worker-Main-8/INFO]: Preparing spawn area: 84%
[01:28:53] [Worker-Main-10/INFO]: Preparing spawn area: 85%
[01:28:54] [Worker-Main-4/INFO]: Preparing spawn area: 87%
[01:28:54] [Worker-Main-1/INFO]: Preparing spawn area: 88%
[01:28:55] [Worker-Main-8/INFO]: Preparing spawn area: 89%
[01:28:55] [Worker-Main-3/INFO]: Preparing spawn area: 90%
[01:28:56] [Worker-Main-11/INFO]: Preparing spawn area: 94%
[01:28:56] [Worker-Main-2/INFO]: Preparing spawn area: 96%
[01:28:57] [Worker-Main-12/INFO]: Preparing spawn area: 97%
[01:28:57] [Server thread/INFO]: Time elapsed: 36462 ms
[01:28:57] [Server thread/INFO]: Done (39.717s)! For help, type "help"
As part of the startup script, I see [01:28:17] [Server thread/INFO]: Starting Minecraft server on *:25565
, so I know the server listening on port 25565.
Windows Defender Firewall prompted for network access for Java. I granted "Private" network access.
Launched Minecraft on a Mac on the same network.
Connected to 10.1.1.10:25565
.
Successfully logged into server.
[01:33:47] [User Authenticator #1/INFO]: UUID of player ktnjared is 36871861-c01c-4555-b774-3ae2b06c1090
[01:33:47] [Server thread/INFO]: ktnjared[/10.1.1.210:52198] logged in with entity id 282 at (-38.5, 78.0, -26.5)
[01:33:47] [Server thread/INFO]: ktnjared joined the game
[01:33:55] [Server thread/INFO]: ktnjared lost connection: Disconnected
[01:33:55] [Server thread/INFO]: ktnjared left the game
10.1.1.210
is the IP of my MBA on Wi-Fi.
Created a temp port forward of *:65432
to 10.1.1.10:25565
on the router. Note that the external port here is not a typo. Since I already have another MC server on the network, the external port is different so that that the Minecraft connection traffic can specifically be routed to this computer instead of my Linux server.
Connected to jareds.home.ddns:65432
.
Successfully logged into server.
[01:41:53] [User Authenticator #2/INFO]: UUID of player ktnjared is 36871861-c01c-4555-b774-3ae2b06c1090
[01:41:53] [Server thread/INFO]: ktnjared[/10.1.1.1:52481] logged in with entity id 504 at (-38.5, 78.0, -26.5)
[01:41:53] [Server thread/INFO]: ktnjared joined the game
[01:42:21] [Server thread/INFO]: ktnjared lost connection: Disconnected
[01:42:21] [Server thread/INFO]: ktnjared left the game
10.1.1.1
is the router, so it makes sense why the router IP is shown due to the port forward.