6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DebianのJavaをデフォルトからJava16へ上げたときの覚書

Last updated at Posted at 2021-06-30

#はじめに
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

6
2
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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?