マイクラのためにJava16をインストールした

CentOS StreamにJava16をインストールした備忘録です。

久しぶりにマインクラフトをプレイしたくなり、VPSにマインクラフトサーバー1.17をインストールして起動しようとしたら下記のエラーメッセージが出て起動に失敗しました。

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 52.0

調べてみるとマインクラフト1.17からJavaのバージョンがJava8からJava16に変更されたようです。

Java16をインストールする

AdoptOpenJDK用のリポジトリを登録

dnfコマンドでインストールするためにリポジトリ登録をします。

vi /etc/yum.repos.d/adoptopenjdk.repo
[AdoptOpenJDK]
name=AdoptOpenJDK
baseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/8/x86_64
enabled=1
gpgcheck=1
gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public

登録し終えたらインストールします

dnf install adoptopenjdk-16-hotspot.x86_64
Sponsored Link

alternativesコマンドでJava16に切り替える

Java16のインストールは終了しましたが、今回インストールした環境にはJava8が残っているのでalternativesコマンドで切り替えます。古いバージョンのJavaが存在していなければ不要な操作です。

alternatives --config java
There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre/bin/java)
 + 2           /usr/lib/jvm/adoptopenjdk-16-hotspot/bin/java

Enter to keep the current selection[+], or type selection number:

使用したいJava16は2番目にありますので、2を入力します。適用されたかどうかの確認のためにJavaのバージョンを見ます。

java --version
openjdk 16.0.1 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-16.0.1+9 (build 16.0.1+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-16.0.1+9 (build 16.0.1+9, mixed mode, sharing)

Java16をインストールし終え、マインクラフトのサーバーを起動してみたところ無事に立ち上がりました。

関連記事:CentOS8でマイクラ鯖を建てる