#はじめに
GCPを利用してMinecraftのサーバーを建てて遊んでいます。
minectaft1.17からJavaの最低要件がJava16に変更されており、minecraft本体に合わせてJavaもアプデしました。その時の簡単な覚書です。
#minecraft1.17へのアプデ
mojangの公式サイトから1.17のserver.jarをダウンロードしてきます。
server.jarはサーバー上のマイクラのフォルダの中の古いserver.jarと置き換えます。
minecraft側はこれで終わり。
#java16へのアプデ
ひとまず現行のJavaのバージョンを確認します。
$ java -version
私の場合、jdk11.0.11くらいでした。
このままserver.jarを起動させると、
java classが低くて起動できぬぞよ。class60以上が使えるjavaにしてくれたまえ。
みたいなことを言われます。class60を取り扱えるのがjava16以降です。
Javaとclassの話はこちらが分かりやすかった[1]
インストールしたいバージョンのJavaが登録されていればapt-getが手軽です。
apt-getでのインストールを試します。
$ sudo apt-get install openjdk-16-jdk
error:そんなもん無いぞ
apt-getはダメそう。探し方が悪かっただけかも。
仕方ないので手動でやります。
手順としては
1.Java16のtar.gzをダウンロードする
2.所定の場所へtarを解凍する
3.今使っているJavaから新しくインストールしたJavaへ参照を書き換える
4.minecraft1.17が起動することを確認して完了
#アプデ作業
###1.Java16のtar.gzのダウンロード
流れは参考サイト[3]と大方同じ。
適当なフォルダにopenJDKの公式からtar.gzをダウンロードする。
$ wget https://download.java.net/java/GA/jdk16.0.1/7147401fd7354114ac51ef3e1328291f/9/GPL/openjdk-16.0.1_linux-x64_bin.tar.gz
###2.所定の場所へtarを解凍
sudo権限が必要
$ sudo su
jdkをインストールする場所を作る。
~$ mkdir /opt/jdk
tarの解凍
~$ tar -zxf /ダウンロードしたディレクトリ/openjdk-16.0.1_linux-x64_bin.tar.gz -C /opt/jdk
###3.参照の書き換え
update-alternativesはざっくり言うとソフトが呼び出された時のリンク先を管理してるやつ(らしい)
詳細は参考サイト[4]参照
~$ update-alternatives --install /usr/bin/java java /opt/jdk/openjdk1.16.0.1/bin/java 100
update-alternatives --install (リンク先を変える対象)(対象の名前)(新しいリンク先のパス)(優先度)
環境によってパスなどは適宜変更されたい。
javaの既定リンク先が変わっているか確認。--configの使い方は参考サイト[5]に詳しい。
~$ update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/jdk/openjdk1.16.0.1/bin/java 100 auto mode
1 /opt/jdk/openjdk1.16.0.1/bin/java 100 manual mode
2 (前のJava) 10 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
多分こんな感じで表示される。*がついてるやつが現在選択されているJava。
###4.minecraft1.17の起動
サーバーを再起動させるなり、コマンドたたくなりする。
$ screen -d -m -S mcs java -Xms1G -Xmx3G -jar server.jar nogui
#終わりに
忘れたころにまたJavaのアプデが入ると思うので書き残しときます。
##参考サイト
[1] Javaのバージョンとクラスの関係:
https://www.ne.jp/asahi/hishidama/home/tech/java/version.html
[2] apt-getを使ったJavaのインストール:
https://www.linuxmania.jp/apt-install-java.html
[3] OracleJDKのインストール:
https://www.digitalocean.com/community/tutorials/how-to-manually-install-oracle-java-on-a-debian-or-ubuntu-vps
[4] update-alternativesの解説:
https://manpages.debian.org/wheezy/dpkg/update-alternatives.8.ja.html
[5] update-alternativesでJavaのバージョンを切り替える:
https://qiita.com/yochapan/items/af86a320035f8db7daf4