OpenJDK17をインストールする【macOS】

Eclipse Temurin(Adoptium)のOpenJDK17をダウンロード〜インストールする手順について説明しています。インストール後のJava環境確認や簡単なJavaコードをコンパイル〜実行して動作確認もしています。

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

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

最終更新日:2023/10/3

本記事では、JavaのJDK17の中でもEclipse Temurin(Adoptium) OpenJDK17をダウンロード&インストールする方法について説明しています。現時点(2023年5月28日)でのOpenJDKの最新版バージョンは20(Java20)ですが、LTS(長期安定サポート)の最新安定版は17(Java17)なので、OpenJDK17をインストールしていきます。

Javaの開発・実行環境を作りたい人や、Javaプログラミングの学習をしたいJava入門者・初心者の方は参考にしてください。

■Eclipse Temurinn(Adoptium) OpenJDKとは何か?
OpenJDKにはいくつかのディストリビューションがあります。Eclipse Temurinはライセンスに従って無料で使えるオープンソースのOpenJDKで、結構人気がありよく使われるOpenJDKだと思います。

以前にAdoptOpenJDKというOpenJDKがあり、AdoptOpenJDKがEclipse Foundationに移行してAdoptiumワーキンググループができ、AdoptiumがEclipse TemurinというOpenJDKを公開したという経緯があります。なのでEclipse Temurin OpenJDKは旧AdoptOpenJDKの後継です。

Adoptium Temurin OpenJDKはGCP(Google Cloud Platform)のJava環境にも使われていたりもします。
Google CloudのJavaランタイムにEclipse Temurin採用へ、GoogleがEclipse Adoptiumに参加を発表

◾️動作環境とバージョン情報です
OS:macOS Big Sur(バージョン11.7.2)
インストールするOpenJDK:Eclipse Temurin(Adoptium) OpenJDK17(Java17)

別ページで、CentOS7環境にEclipse Temurin(Adoptium)とMicrosoftのOpenJDKをインストールする方法や、AWSのec2上にAmazonのOpenJDK(OpenJRE)ディストリビューションのAmazon Correttoをインストールする方法について説明しているので、よければ参考にしてください。
OpenJDKをインストールする【ec2(Amazon Linux 2,2023)】
OpenJDKをインストールする【CentOS7】
JavaのJDKとJREの違い。OpenJDKとは?OpenJDKの複数の種類について

Eclipse Temurin OpenJDK17(Java17)をダウンロード&インストールする

Eclipse TemurinのOpenJDKは、Adoptium公式サイトからダウンロードできます。
公式のトップページを見ると、"Download Temurin for macOS x64"と私のOS環境用になっていたので(たぶん使用しているOS環境に合った物を表示してくれてる)、そのまま「Latest LTS Release jdk-17.0.7+7」を選択してダウンロードします(2023年5月28日時点)。Latest LTS Releaseは最新LTSリリース版、LTSはLong-Term Support(長期サポート版)の事です。
AdoptiumサイトからEclipse Temurin OpenJDK17(Java17)をダウンロード

違うOS環境やバージョン(非LTSの最新バージョンのOpenJDK20とか)のOpenJDKや、OpenJRE(Java Runtime Environment, JVM)だけをダウンロードしたい場合、「Other platforms and versions」や「Release Archive」の方を選択してリンクを辿れば、そこからダウンロードする事ができます。

私の環境では「OpenJDK17U-jdk_x64_mac_hotspot_17.0.7_7.pkg」がダウンロードできたので、このpkgファイルを開きます。

Eclipse Temurin OpenJDK17のインストーラが起動します。
Eclipse Temurin OpenJDK17のインストーラ起動

Eclipse Temurin OpenJDKのインストーラでは、自分の場合は次にように進めてOpenJDK17をインストールしました。

・はじめに画面:続けるボタンを選択。
・使用許諾契約画面:続ける(Continue)ボタンを選択。使用許諾契約の確認メッセージが出るので問題なければAgree(同意する)ボタンを選択。
・インストール先画面:続けるボタンを選択。
・インストールの種類:デフォルト設定でインストールボタンを選択。(もしもカスタマイズやインストール先の変更をしたい場合はここでする。)
->OSのパスワードを要求されるので、パスワードを入力してソフトウェアインストールボタンを選択するとインストールが始める。
・インストールが完了しました画面が出るので、閉じるボタンを選択して終了。
Eclipse Temurin OpenJDK17のインストール完了

インストーラに従って、簡単にEclipse TemurinのOpenJDK17(Java17)をインストールする事ができました!(自分の場合はデフォルト設定のままで続けるとインストールを選択するだけだった。)

これでEclipse TemurinのOpenJDK17(Java17)をインストールできたので、このあと簡単にJavaの環境確認と動作確認をしていきます。

Eclipse Temurin OpenJDK17(Java17)インストール後のJava環境をコマンドで確認する

ターミナル上でコマンドを確認したら、java,javacコマンドの両方を使えるようになりました。(javaバージョンはもちろん17.0.7。)

$ java -version
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment Temurin-17.0.7+7 (build 17.0.7+7)
OpenJDK 64-Bit Server VM Temurin-17.0.7+7 (build 17.0.7+7, mixed mode, sharing)

$ javac -version
javac 17.0.7
Eclipse Temurin OpenJDK17本体のインストール先ディレクトリはこちら。
/Library/Java/JavaVirtualMachines/temurin-17.jdk
本体の容量は308MB程度ですね。
$ du -sh /Library/Java/JavaVirtualMachines/temurin-17.jdk/
308M	/Library/Java/JavaVirtualMachines/temurin-17.jdk/

$ du -sh /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/*/
308M	/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/
 84K	/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/MacOS/
 72K	/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/_CodeSignature/
java_homeコマンドの結果です。
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

$ /usr/libexec/java_home --verbose
Matching Java Virtual Machines (1):
    17.0.7 (x86_64) "Eclipse Adoptium" - "OpenJDK 17.0.7" /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

$ /usr/libexec/java_home -X
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>JVMArch</key>
		<string>x86_64</string>
		<key>JVMBundleID</key>
		<string>net.java.openjdk.jdk</string>
		<key>JVMEnabled</key>
		<true/>
		<key>JVMHomePath</key>
		<string>/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home</string>
		<key>JVMName</key>
		<string>OpenJDK 17.0.7</string>
		<key>JVMPlatformVersion</key>
		<string>17.0.7</string>
		<key>JVMVendor</key>
		<string>Eclipse Adoptium</string>
		<key>JVMVersion</key>
		<string>17.0.7</string>
	</dict>
</array>
</plist>

Javaコードのコンパイルと実行を試す

せっかくOpenJDKをインストールしたので、簡単なJavaプログラミングコードをコンパイルして実行してみます。

まず、Javaファイル(HelloWorld.java)を作成します。(ただのHello world出力と、システムプロパティのプリントデバッグでOpenJDKのバージョンやディストリビューションベンダーの情報を確認するコード。)

$ ls
HelloWorld.java

$ cat HelloWorld.java
class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, world!");
    //システムプロパティのプリントデバッグ
    System.out.println("os.name :" + System.getProperty("os.name"));
    System.out.println("os.version :" + System.getProperty("os.version"));
    System.out.println("os.arch :" + System.getProperty("os.arch"));
    System.out.println("java.version : " + System.getProperty("java.version"));
    System.out.println("java.version.date :" + System.getProperty("java.version.date"));
    System.out.println("java.vendor :" + System.getProperty("java.vendor"));
    System.out.println("java.home :" + System.getProperty("java.home"));
    System.out.println("java.vm.name : " + System.getProperty("java.vm.name"));
    System.out.println("java.vm.version :" + System.getProperty("java.vm.version"));
    System.out.println("java.vm.vendor :" + System.getProperty("java.vm.vendor"));
    System.out.println("user.name :" + System.getProperty("user.name"));
    System.out.println("java.class.path :" + System.getProperty("java.class.path"));
    System.out.println("file.separator :" + System.getProperty("file.separator"));
    System.out.println("path.separator :" + System.getProperty("path.separator"));
  }
}
javacコマンドでコンパイルします。
$ javac HelloWorld.java 

$ ls
HelloWorld.class  HelloWorld.java
javaクラスファイルを生成できたので、javaコマンドで実行します。
$ java HelloWorld
Hello, world!
os.name :Mac OS X
os.version :11.7.6
os.arch :x86_64
java.version : 17.0.7
java.version.date :2023-04-18
java.vendor :Eclipse Adoptium
java.home :/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
java.vm.name : OpenJDK 64-Bit Server VM
java.vm.version :17.0.7+7
java.vm.vendor :Eclipse Adoptium
user.name :hogeuser
java.class.path :.
file.separator :/
path.separator ::
システムプロパティの情報を見れば、OpenJDKのバージョン情報(17.0.7)だけでなく、ディストリビューションベンダー(Eclipse Adoptium)の情報もわかりますね。

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

EclipseのJavaプロジェクトで使用しているJava(JDK)を、今回インストールしたOpenJDKに変更して使う

EclipseでJavaプログラミング開発をしているので、今回インストールしたEclipse Temurinの新バージョンのOpenJDKをEclipse上のJava開発プロジェクトでも使いたいと思います。

別ページで、EclipseのJavaプロジェクトで使用するJavaの設定方法について説明しているので参考にしてください。
EclipseのJavaプロジェクトで使うJDK(Java)を新規追加して設定する

Eclipse TemurinのOpenJDK17をアンインストール(削除)する

Eclipse Temurin OpenJDK17をインストールしたばかりですが、アンインストールも試してみたいのでやってみます。

ここでEclipse Temurin OpenJDK17をアンインストールしても、再度Eclipse Temurin OpenJDK17のインストーラを使えば同じようにインストールできます。

OpenJDKをアンインストールすると言っても、Eclipse Temurin OpenJDK17の本体があるディレクトリをrmコマンドで削除するだけです。

$ sudo rm -rf /Library/Java/JavaVirtualMachines/temurin-17.jdk
Password:

rmコマンドでOpenJDK17の本体削除後のJavaの環境確認です。
java,javacコマンドは当然使えなくなります。あとjava_homeコマンドも使えない。(ただ、java,javac実行ファイル自体はもちろんそのままあるからコマンドエラーという訳ではない。)

$ java
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

$ javac
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

$ which java
/usr/bin/java

$ which javac
/usr/bin/javac

$ /usr/libexec/java_home
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

これでEclipse TemurinのOpenJDK17のアンインストール(削除)は完了です。
この後にEclipse Temurinのインストーラを使って、再度Eclipse Temurin OpenJDK17をインストールしました。

もしもOpenJDKをアンインストールして、Eclipseが起動しなくなったら

Eclipse自体も主にJavaで作られているので、Eclipseの起動・使用自体にJava(のビルドされたバイナリ、JRE、JVM)を必要とします。

ですので、OpenJDKをアンインストール(削除)した事で、もしかしたらEclipseが起動できなくなるかもしれません。(自分の環境ではEclipseインストール時に一緒に入っていたJavaを使用していたので、Eclipse TemurinのOpenJDKを削除しても問題なかった。)

ですので、もしもEclipseが起動できなくなったら、Eclipseを起動・動かすのに使用しているJava(JVM)を確認してください。Eclipseの起動に使用しているJavaは、eclipse.iniファイルの-vmオプションで設定しています。

■eclipse.iniファイルのパス(自分の環境の場合。環境やインストールしたEclipseのバージョン・ディストリビューションによってパスは異なると思うけど、eclipse.iniファイルはどこかにあるはず。)

/Applications/Eclipse_2020-06.app/Contents/Eclipse/eclipse.ini
■eclipse.iniファイル内の-vmオプション
-vm
/Applications/Eclipse_2020-06.app/Contents/java/11/Home/bin
〜

-vmオプションで使用可能なJava(JDK、JRE)のビルド済バイナリのパスを指定すれば、またEclipseを起動して使えるようになると思います。