OpenJDKをインストールする【ec2(Amazon Linux 2,2023)】

AWSのec2(Amazon Linux 2,Amazon Linux 2023)上にJavaのOpenJDK(バージョン17や20最新安定版)やJREをダウンロードとインストールする方法について説明しています。ec2上にJava開発ツールやJavaアプリの実行環境を構築したい方は参考にしてください。

※ 本ページはプロモーションが含まれています。

このページの目的と動作環境

最終更新日:2023/5/28

本記事では、ec2上にAmazonのOpenJDKのAmazon Correttoをダウンロード&インストールする方法について説明しています。(Javaの実行環境のみのOpenJREのインストールについても。)

Javaアプリの実行環境を構築したい方や、Javaプログラミング開発を勉強したい入門者・初心者の方も参考にしてください。

◾️動作環境とバージョン情報です
OS:AWS ec2(Amazon Linux 2 AMI、Amazon Linux 2023 AMI)
インストールしてみたOpenJDK、OpenJRE:Amazon CorrettoのOpenJDK17(Java17)、JRE17、OpenJDK20(Java20)

ec2のAmazon Linux 2とAmazon Linux 2023の環境でAmazon CorrettoのOpenJDKをインストールしてみましたが、両方ともほぼ同じ流れでできました。(違う部分はメモ書きしています。)

OpenJDKにはいくつかの種類のディストリビューションがあります。そして各OpenJDKはそれぞれのライセンスに従ってフリー(無料)で使用できます。このページでは、ec2環境なのでAmazonが公開しているAmazon CorrettoというOpenJDKやJREをインストールする方法について説明しています。

また別ページで、他のOpenJDK(Eclipse Temurin(Adoptium)とMicrosoftのOpenJDK)をmacOSやCentOS7環境にインストールする方法について説明していますので、よければ参考にしてください。
OpenJDK17をインストールする【macOS】
OpenJDKをインストールする【CentOS7】
JavaのJDKとJREの違い。OpenJDKとは?OpenJDKの複数の種類について

前提として、VPCやec2の作成、キーペアの作成、セキュリティグループの設定、yum updateコマンドなどは既にやっているとして話を進めていきます。

Amazon CorrettoのOpenJDK17(Amazon Corretto 17)をインストールする。JRE17だけのインストールも。アンインストールも。

まず、ec2作成時のyumリポジトリの状態です。
■Amazon Linux 2の場合

$ ls /etc/yum.repos.d/
amzn2-core.repo  amzn2-extras.repo

$ yum repolist
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
リポジトリー ID                                 リポジトリー名                                          状態
!amzn2-core/2/x86_64                      Amazon Linux 2 core repository                          30,941
amzn2extra-docker/2/x86_64                Amazon Extras repo for docker                               86
amzn2extra-kernel-5.10/2/x86_64           Amazon Extras repo for kernel-5.10                         308
■Amazon Linux 2023の場合
$ ls /etc/yum.repos.d/
amazonlinux.repo  kernel-livepatch.repo

$ yum repolist
repo id                             repo name
amazonlinux                         Amazon Linux 2023 repository
kernel-livepatch                    Amazon Linux 2023 Kernel Livepatch repository
(*有効無効関係なくyumリポジトリの一覧を確認をしたい場合、allオプションをつけてyum repolist allコマンドで。)

amazon-linux-extrasコマンドでインストールできるOpenJDKを確認したら、java11(OpenJDK11)がありました。11はちょっと古いですね。(amazon-linux-extrasコマンドは、Amazon Linux2では使えるけど、Amazon Linux 2023では使えなくなってる。)

$ sudo amazon-linux-extras | grep -i -e jdk -e java
 33  java-openjdk11           available    [ =11  =stable ]
 
$ amazon-linux-extras info java-openjdk11
java-openjdk11 recommends java-11-openjdk            # yum install java-11-openjdk

yumリポジトリを確認したら、Amazon CorrettoのOpenJDKのバージョン11と17があります。

$ sudo yum search amazon corretto
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
======================================================== N/S matched: amazon, corretto ===========
java-11-amazon-corretto.x86_64 : Amazon Corretto development environment
java-11-amazon-corretto-headless.x86_64 : Amazon Corretto headless development environment
java-11-amazon-corretto-javadoc.x86_64 : Amazon Corretto 11 API documentation
java-17-amazon-corretto.x86_64 : Amazon Corretto development environment
java-17-amazon-corretto-devel.x86_64 : Amazon Corretto 17 development tools
java-17-amazon-corretto-headless.x86_64 : Amazon Corretto headless development environment
java-17-amazon-corretto-javadoc.x86_64 : Amazon Corretto 17 API documentation
java-17-amazon-corretto-jmods.x86_64 : Amazon Corretto 17 jmods
OpenJDK17(Java17)はLTS(長期安定サポート)では最新安定板なので(2023/5/21時点)、Amazon Corretto 17のOpenJDKをインストールしてみます。

Amazon Corretto 17のJREをインストールしたい場合はこちら、Amazon CorrettoのOpenJDK20をインストールしたい場合はこちらです。

以下のコマンド例はec2(Amazon Linux 2)上で実行したものですが、ec2(Amazon Linux 2023)環境でも同じコマンドを実行できました。

OpenJDKは"Amazon Corretto 17 development tools"なので、"java-17-amazon-corretto-devel"をインストールします。(Amazon Correttoのバージョン17、OpenJDK17(Java17))

$ sudo yum install java-17-amazon-corretto-devel
〜
インストール:
  java-17-amazon-corretto-devel.x86_64 1:17.0.7+7-1.amzn2.1

依存性関連をインストールしました:
  alsa-lib.x86_64 0:1.1.4.1-2.amzn2                            dejavu-fonts-common.noarch 0:2.33-6.amzn2                                  
  dejavu-sans-fonts.noarch 0:2.33-6.amzn2                      dejavu-sans-mono-fonts.noarch 0:2.33-6.amzn2                               
  dejavu-serif-fonts.noarch 0:2.33-6.amzn2                     fontconfig.x86_64 0:2.13.0-4.3.amzn2                                       
  fontpackages-filesystem.noarch 0:1.44-8.amzn2                java-17-amazon-corretto-headless.x86_64 1:17.0.7+7-1.amzn2.1               
  javapackages-tools.noarch 0:3.4.1-11.amzn2                   libxslt.x86_64 0:1.1.28-6.amzn2                                            
  log4j-cve-2021-44228-hotpatch.noarch 0:1.3-7.amzn2           python-javapackages.noarch 0:3.4.1-11.amzn2                                
  python-lxml.x86_64 0:3.2.1-4.amzn2.0.4                           

完了しました!
インストールできました。
java,javacコマンドも両方使えます(バージョンはもちろん17)
$ java -version
openjdk version "17.0.7" 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)

$ javac -version
javac 17.0.7

OpenJDKをインストールしたので、簡単なJavaプログラミングコードを書いてコンパイルして実行してみます。「Javaコードのコンパイルと実行を試する」を参考にして、javacでコンパイル、javaコマンドで実行したけど問題なくできました。(他にもSpring Bootのアプリをjarファイルにして実行する事ができました。)

■インストールしたOpenJDK17(Amazon Corretto 17)をアンインストールする
Amazon Corretto 17をインストールしたばかりですが、ちょっとアンインストールも試したくなったのでやってみました。
Amazon Linux 2023環境でアンインストールするには、yum removeコマンドでできました。

$ sudo yum remove java-17-amazon-corretto-devel
ただ、Amazon Linux 2環境でアンインストールする場合、yum removeコマンドだと指定した”java-17-amazon-corretto-devel”だけ削除されて、インストール時に一緒にインストールされた依存性のあるライブラリが残るという中途半端な状態になってしまったので、その残ったライブラリをまた1つずつyum removeで削除していくという流れになって結構な手間でした。

一方、Amazon Linux 2環境でyum autoremoveコマンドで"アンインストールしたら、インストール時に一緒にインストールされた依存性のあるライブラリも同時に削除してくれて綺麗になりました!(yum autoremoveコマンドの方が簡単ではあるけど、ちょっと何か削除してはいけないものまで削除してしまうかもしれない怖さも感じたので、実際にやる時は自己責任でお願いします。)

$ sudo yum autoremove java-17-amazon-corretto-devel
〜
削除しました:
  java-17-amazon-corretto-devel.x86_64 1:17.0.7+7-1.amzn2.1     

依存性の削除をしました:
  alsa-lib.x86_64 0:1.1.4.1-2.amzn2                        dejavu-fonts-common.noarch 0:2.33-6.amzn2                                  
  dejavu-sans-fonts.noarch 0:2.33-6.amzn2                  dejavu-sans-mono-fonts.noarch 0:2.33-6.amzn2                               
  dejavu-serif-fonts.noarch 0:2.33-6.amzn2                 fontconfig.x86_64 0:2.13.0-4.3.amzn2                                       
  fontpackages-filesystem.noarch 0:1.44-8.amzn2            java-17-amazon-corretto-headless.x86_64 1:17.0.7+7-1.amzn2.1               
  javapackages-tools.noarch 0:3.4.1-11.amzn2               libxslt.x86_64 0:1.1.28-6.amzn2                                            
  log4j-cve-2021-44228-hotpatch.noarch 0:1.3-7.amzn2       python-javapackages.noarch 0:3.4.1-11.amzn2                                
  python-lxml.x86_64 0:3.2.1-4.amzn2.0.4                           

完了しました!

これでAmazon CorrettoのOpenJDK17をインストールする事ができたけど、開発ツール群のJDKは必要ない、Javaアプリの実行環境を構築したいだけだからJREだけインストールできれば十分という人もいるかと思います。

という事で今度はAmazon CorrettoのJRE(バージョン17)をインストールします。Amazon CorrettoのJREをインストールするには、"java-17-amazon-corretto"か"java-17-amazon-corretto-headless"のどちらかをインストールします。(もちろん、"java-17-amazon-corretto-headless"の方が軽いJREだと思います。)

試しに"java-17-amazon-corretto"の方をインストールしてみます。

$ sudo yum install java-17-amazon-corretto
〜
インストール:
  java-17-amazon-corretto.x86_64 1:17.0.7+7-1.amzn2.1   

依存性関連をインストールしました:
  alsa-lib.x86_64 0:1.1.4.1-2.amzn2                           dejavu-fonts-common.noarch 0:2.33-6.amzn2                     
  dejavu-sans-fonts.noarch 0:2.33-6.amzn2                     dejavu-sans-mono-fonts.noarch 0:2.33-6.amzn2                  
〜
  libXt.x86_64 0:1.1.5-3.amzn2.0.2                            libXtst.x86_64 0:1.2.3-1.amzn2.0.2                            
  libxcb.x86_64 0:1.12-1.amzn2.0.2                            libxslt.x86_64 0:1.1.28-6.amzn2                               
  log4j-cve-2021-44228-hotpatch.noarch 0:1.3-7.amzn2          python-javapackages.noarch 0:3.4.1-11.amzn2                   
  python-lxml.x86_64 0:3.2.1-4.amzn2.0.4                

完了しました!
インストールできました。
JREなのでjavaコマンドは実行できるけど、javacコマンドは使えません。
$ java -version
openjdk version "17.0.7" 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)

$ javac -version
-bash: /usr/bin/javac: No such file or directory

(広告)AmazonでJavaプログラミング関連の本(Kindle)を探す!

Amazon CorrettoのOpenJDK20(Amazon Corretto 20)をインストールしてみる

Amazon CorrettoのOpenJDK20をインストールしてみます。(2023/5/21時点でバージョン20は最新版のJDK、LTSの最新版はバージョン17)

Amazon Corretto OpenJDK17(LTS(長期安定サポート)の最新版)をインストールしたい場合はこちらです。

yum searchコマンドで確認したときに、デフォルトのyumリポジトリに入っていたAmazon Corretto OpenJDKの最新バージョンは17でした。

$ sudo yum search amazon corretto
〜
java-17-amazon-corretto.x86_64 : Amazon Corretto development environment
java-17-amazon-corretto-devel.x86_64 : Amazon Corretto 17 development tools
java-17-amazon-corretto-headless.x86_64 : Amazon Corretto headless development environment
java-17-amazon-corretto-javadoc.x86_64 : Amazon Corretto 17 API documentation
java-17-amazon-corretto-jmods.x86_64 : Amazon Corretto 17 jmods

Amazon Correttoのバージョン20をインストールするには、下記コマンドを実行して新しいバージョン用のリポジトリを追加する必要があります。

$ 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
リポジトリの確認してみます。/etc/yum.repos.d/corretto.repoファイルが作成され、Amazon Correttoリポジトリが追加されました。
■Amazon Linux 2の場合
$ ls /etc/yum.repos.d/
amzn2-core.repo  amzn2-extras.repo  corretto.repo

$ yum repolist
〜
リポジトリー ID                            リポジトリー名                                   状態
AmazonCorretto/x86_64                      Amazon Corretto                                  59+9
amzn2-core/2/x86_64                        Amazon Linux 2 core repository                 30,941
amzn2extra-docker/2/x86_64                 Amazon Extras repo for docker                      86
amzn2extra-epel/2/x86_64                   Amazon Extras repo for epel                         1
amzn2extra-kernel-5.10/2/x86_64            Amazon Extras repo for kernel-5.10                308
repolist: 31,395
■Amazon Linux 2023の場合
$ ls /etc/yum.repos.d/
amazonlinux.repo  corretto.repo  kernel-livepatch.repo

$ yum repolist
repo id                                                  repo name
AmazonCorretto                                           Amazon Corretto
amazonlinux                                              Amazon Linux 2023 repository
kernel-livepatch                                         Amazon Linux 2023 Kernel Livepatch repository

yum searchコマンドも再度確認してみます。

$ sudo yum search amazon corretto
〜
java-17-amazon-corretto.x86_64 : Amazon Corretto development environment
java-17-amazon-corretto-devel.x86_64 : Amazon Corretto 17 development tools
java-17-amazon-corretto-headless.x86_64 : Amazon Corretto headless development environment
java-17-amazon-corretto-javadoc.x86_64 : Amazon Corretto 17 API documentation
java-17-amazon-corretto-jmods.x86_64 : Amazon Corretto 17 jmods
java-18-amazon-corretto-devel.x86_64 : Amazon Corretto 18 development environment
java-19-amazon-corretto-devel.x86_64 : Amazon Corretto 19 development environment
java-20-amazon-corretto-devel.x86_64 : Amazon Corretto 20 development environment
Amazon Correttoのバージョン18~20が追加されています!(ただバージョン18~20のJREだけというのは無さそう。)

という事で準備ができたので、Amazon Corretto OpenJDK20をインストールしてみます。

$ sudo yum install java-20-amazon-corretto-devel
〜
インストール中          : 1:java-20-amazon-corretto-devel-20.0.1.9-1.x86_64                 1/1 
  検証中                  : 1:java-20-amazon-corretto-devel-20.0.1.9-1.x86_64               1/1 

インストール:
  java-20-amazon-corretto-devel.x86_64 1:20.0.1.9-1   

完了しました!
インストールできました!
java,javacコマンド両方とも実行できる。(バージョンはもちろん20)
$ java -version
openjdk version "20.0.1" 2023-04-18
OpenJDK Runtime Environment Corretto-20.0.1.9.1 (build 20.0.1+9-FR)
OpenJDK 64-Bit Server VM Corretto-20.0.1.9.1 (build 20.0.1+9-FR, mixed mode, sharing)

$ javac -version
javac 20.0.1

インストールしたAmazon Corretto 20をアンインストールしたい時はyum removeコマンドでできます。

$ sudo yum remove java-20-amazon-corretto-devel
~
削除しました:
  java-20-amazon-corretto-devel.x86_64 1:20.0.1.9-1    

完了しました!

ec2上にMySQLと連携したSpring Bootアプリの実行環境を構築する

OpenJDK(JRE)をインストールしてJava実行環境を作る事ができました。Javaの人気のWebフレームワークにSpring Bootがありますが、OpenJDK(JRE)を入れればもちろんSpring Bootアプリも動かせる事ができます。

別ページでOpenJDK(JRE)だけでなく、MySQLをインストールして、DBと連携したSpring Bootの実行環境を作る手順について説明しているので、参考にしてください。
Spring Boot + MySQL(MariaDB)の実行環境を作る