とあるサーバー向けソフトウェアでJava16を必要とする事があった。
すでにAmazon Corretto 8を用いてJDK8がインストールされていたが、
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 16のインストールについて解説するが、Corretto 8については次の記事を参考にしてほしい。→AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する
環境
AWS EC2 t4g.medium ARM AmazonLinux2
JDK 1.8.0_302 がインストール済み
今回はARM版のAmazonLinux2を利用しているが、x86でも手順はほぼ同様だと思われる。
インストール
今回はyumからインストールを行う。rpmからマニュアルでインストールする方法はこちら→AWSのマニュアル
Amazon Linux2でyumリポジトリを有効にする。
AWSが用意したAmazon Corretto用のリポジトリの公開鍵をインポートし、リポジトリをシステムに追加する。
sudo rpm --import https://yum.corretto.aws/corretto.key
sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
リポジトリの追加後、以下コマンドでインストールを行う。
sudo yum install -y java-16-amazon-corretto-devel
Amazon Corretto 8の場合と比較すると今回インストールするのはJDKだと予測できるが、公式ドキュメントにCorretto 16でのJDK,JREについての記載はなくJDKのリンクのみが記載されていた。
Amazon Corretto 16は/usr/lib/jvm/java-16-amazon-corretto
にインストールされる。
Corretto 8の場合と異なり、ディレクトリ名にCPUアーキテクチャーの記載が無いが、yumのログを見ると
Downloading packages:
java-16-amazon-corretto-devel-16.0.2.7-1.aarch64.rpm | 197 MB 00:00:08
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:java-16-amazon-corretto-devel-16.0.2.7-1.aarch64 1/1
Verifying : 1:java-16-amazon-corretto-devel-16.0.2.7-1.aarch64 1/1
となっているのでアーキテクチャーに応じたソフトウェアが適宜インストールされているようだ。
バージョンの切り替え
環境によってはすでにJavaが入っており、java --version
で旧バージョンが有効になってしまうことがある。
java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment Corretto-8.302.08.1 (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM Corretto-8.302.08.1 (build 25.302-b08, mixed mode)
これは以下コマンドを利用してJavaの切り替えを行い対応する。
sudo alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
+ 1 /usr/lib/jvm/java-1.8.0-amazon-corretto.aarch64/jre/bin/java
* 2 /usr/lib/jvm/java-16-amazon-corretto/bin/java
Enter to keep the current selection[+], or type selection number: 2
変更を確認する。
java -version
openjdk version "16.0.2" 2021-07-20
OpenJDK Runtime Environment Corretto-16.0.2.7.1 (build 16.0.2+7)
OpenJDK 64-Bit Server VM Corretto-16.0.2.7.1 (build 16.0.2+7, mixed mode, sharing)
変更が確認できた。
なお、JDKを使用している場合は以下コマンドも合わせて実行する必要がある場合がある。
sudo alternatives --config javac
参考記事
公式のAmazon Corretto 16インストール記事
https://docs.aws.amazon.com/corretto/latest/corretto-16-ug/generic-linux-install.html#rpm-linux-install-instruct
私が過去に執筆したAmazon Corretto 8についてのQiitaの記事
https://qiita.com/honahuku/items/e5464bb3b102710b555a