AWSのec2(Amazon Linux 2,Amazon Linux 2023)上にJavaのOpenJDK(バージョン17や20最新安定版)やJREをダウンロードとインストールする方法について説明しています。ec2上にJava開発ツールやJavaアプリの実行環境を構築したい方は参考にしてください。
※ 本ページはプロモーションが含まれています。
本記事では、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コマンドなどは既にやっているとして話を進めていきます。
まず、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 -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
完了しました!
インストールできました。$ 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 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リポジトリが追加されました。$ 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 -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
完了しました!
OpenJDK(JRE)をインストールしてJava実行環境を作る事ができました。Javaの人気のWebフレームワークにSpring Bootがありますが、OpenJDK(JRE)を入れればもちろんSpring Bootアプリも動かせる事ができます。
別ページでOpenJDK(JRE)だけでなく、MySQLをインストールして、DBと連携したSpring Bootの実行環境を作る手順について説明しているので、参考にしてください。
Spring Boot + MySQL(MariaDB)の実行環境を作る
Amazon Corretto(本番環境に対応したOpenJDKディストリビューション)| AWS
Amazon Linux 2 を実行している EC2 インスタンスに Extras Library からソフトウェアパッケージをインストールする方法を教えてください。
->amazon-linux-extrasコマンドについて書いてある。(amazon Linuxのリポジトリを扱うコマンド)。
Amazon Corretto 17 Installation Instructions for Amazon Linux 2 and Amazon Linux 2022
Amazon Corretto 20 Guide for Linux