Minecraft 1.21のサーバーを動かすためにした作業のログ
背景情報
Minecraft サーバーはここでDLできる
Wikiを見たらMinecraft 1.21を動かすにはJava21が必要とのこと
Minecraft ≥ 1.20.5 and 1.21 requires Java 21.
今Minecraft用にしているサーバーは Java 17 だったので更新が必要
$java --version
openjdk 17.0.18 2026-01-20
OpenJDK Runtime Environment (build 17.0.18+8-Ubuntu-122.04.1)
OpenJDK 64-Bit Server VM (build 17.0.18+8-Ubuntu-122.04.1, mixed mode, sharing)
ここまでの構築の様子は以下のブログに書いた
作業
Java21を入れる
$sudo apt install openjdk-21-jdk-headless
GUIはいらないのでheadlessにする
バージョン変更いるかなあと思ってたら自動で更新されてた
$java --version
openjdk 21.0.10 2026-01-20
OpenJDK Runtime Environment (build 21.0.10+7-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 21.0.10+7-Ubuntu-122.04, mixed mode, sharing)
新しい server.jar をダウンロード
wget https://...
1.21.11のをDLしたのでファイル名を変更
$mv server.jar minecraft_server_1.21.11.jar
サーバー起動
$java -Xmx1024M -Xms1024M -jar minecraft_server_1.21.11.jar nogui
ついでにsystemd管理に移行
サーバー側からコマンド使えるようにtmuxで起動してたけど、自分のアカウントにop権限付けてれば十分なのでsystemd管理下にうつす
以下のようにserviceファイルを書く。多分 /opt 以下とかに入れた方がきれいなんだろうけどどうせ僕しかこのサーバー使わないのでこのままで
# /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft 1.21 Server
After=network.target
[Service]
User=crashrt
Group=crashrt
WorkingDirectory=/home/crashrt/minecraft
ExecStart=/usr/bin/java -Xmx1G -Xms1G -jar minecraft_server_1.21.11.jar nogui
Restart=on-failure
RestartSec=10
# サーバーを安全に停止するためのシグナル設定(最近のMinecraftはSIGTERMで安全に終了します)
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target
あとは読み込ませてenableして起動するだけ
$sudo systemctl daemon-reload
$sudo systemctl enable minecraft.service
$sudo systemctl start minecraft.service