1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry PiでMinecraft 1.21のサーバーを建てる

Last updated at Posted at 2024-07-19

環境

  • Raspberry Pi 4 8GB
  • Raspberry Pi OS 64bit
  • ストレージ:SSD(USB3.0接続) 128GB

サーバーが起動できない

Minecraftの新バージョン(1.21)が出たので、ラズパイサーバーで起動しようとした。
しかし、エラーが発生し起動できない。

$ java -Xmx4G -Xms4G -jar server.jar nogui
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
        java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0

具体的には、MinecraftサーバーがJavaの新しいバージョンでコンパイルされており、クラスファイルバージョン65.0を要求しているようだ。

Javaを更新する

当方が最後に起動したMinecraftサーバーは1.20.1である。

Javaのバージョンを確認すると17.0.11だった。これを更新する必要がある。

$ java -version
openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Debian-1deb11u1, mixed mode, sharing)

どうせこのバージョンはもう使わないので削除する。

$ sudo apt remove openjdk-*

クラスファイルバージョン65.0以上を要求しているため、Java21以上が必要なようだ。
https://javaalmanac.io/bytecode/versions/

aptでインストール

aptを用いて対応しているopenjdkのインストールを試みる。

$ sudo apt install openjdk-21-jdk
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package openjdk-21-jdk

$ sudo apt install openjdk-22-jdk
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package openjdk-22-jdk

openjdkの21以降が必要だが、21も22(GA最新版)もaptではインストールできない。

Ubuntuでインストールできている記事を散見するので、armなのが問題なのだろうか。有識者求ム。

手動でインストール

aptが使えないので、こちらから自分でarmのバイナリを落としてインストールする。

2024/07/19現在、最新のGAは22.0.2とのことなので、それをインストールする。

openjdkをダウンロードする

wgetでダウンロード

$ wget https://download.java.net/java/GA/jdk22.0.2/c9ecb94cd31b495da20a27d4581645e8/9/GPL/openjdk-22.0.2_linux-aarch64_bin.tar.gz

落としたtar.gzを解凍する

$ tar -xvf openjdk-22.0.2_linux-aarch64_bin.tar.gz

適切なディレクトリに保存

$ sudo cp -r jdk-22.0.2 /opt/

環境変数の設定

$ vi ~/.bashrc

ファイルの最後に、次の2行を追記する。

export JAVA_HOME=/opt/jdk-22.0.2
export PATH=$PATH:$JAVA_HOME/bin

設定を反映させるため、一度ターミナルを切ってから再度開く。

そしてバージョンを確認。

$ java -version
openjdk version "22.0.2" 2024-07-16
OpenJDK Runtime Environment (build 22.0.2+9-70)
OpenJDK 64-Bit Server VM (build 22.0.2+9-70, mixed mode, sharing)

これで1.21のMinecraftサーバーが起動できるようになった。

まとめ

Javaランタイムのバージョンが古く、Minecraftサーバーを起動できなかった。

aptで適切なパッケージが見つからなかったため、手動でGA最新版のarm用ランタイムをインストールして解決した。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?