2021/08/27

M1 mac (macOS / AArch64) 用 JDK 17 の Release-Candidate Builds を動かしてみた

Java 17 は2021年9月リリース予定となっています。先立って JDK 17 の Release-Candidate Builds が 2021年8月6日に公開されました。
今回は、M1 mac (macOS / AArch64) 版を動かしてみたので、さらっと手順を紹介します。

余談

以前、本ブログで Java 14 の新機能まとめ を書きました。その後 Java 15 以降も書こうと思っていたのですが、書きそびれていて、とうとう Java 17 リリース間近になってしまいました。
JDK 17 は Long-time support (LTS) となる予定なので、さすがにそろそろ Java 15〜17 の新機能をまとめて取り上げておきたいなと思い、サンプルコードを書くための簡単な開発環境を用意してみました。

ダウンロード

JDK 17 のページ から macOS / AArch64 の tar.gz をダウンロードします。正しくダウンロード出来ているか確認するため sha256 もチェックしておくと良いですね。ダウンロードしたファイルの sha256 はターミナルから次のような感じで算出できます。

$ shasum -a 256 ~/Downloads/openjdk-17_macos-aarch64_bin.tar.gz 
b5bf6377aabdc935bd72b36c494e178b12186b0e1f4be50f35134daa33bda052  /Users/xxxxxxxx/Downloads/openjdk-17_macos-aarch64_bin.tar.gz

tar.gz アーカイブの展開

RC だからだと思うのですが、dmg ではなく tar.gz 配布なので、展開して手動で配置してあげる必要があります。
tar.gz の展開は、Finder からダウンロードした tar.gz をダブルクリックするだけです。jdk-17.jdk というフォルダが展開されると思います。

手動で配置

展開されて出てきた jdk-17.jdk を Finder で ライブラリ - Java - JavaVirtualMachines (パスで言うと /Library/Java/JavaVirtualMachines) に移動します。

ターミナルから動作確認

$ /usr/libexec/java_home -v 17 --exec java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

vscode の設定

まず Language Support for Java(TM) by Red Hat エクステンションをインストールします。
その後 Settings を開き、jdk などで検索すると、Java: Home というエントリがあると思うので、その Edit in settings.json をクリックしてください。settings.json の java.home の値の箇所が開きますので、以下のように設定します。先程配置した jdk-17.jdk の中の Contents/Home が Java home になります。
"java.home": "/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home",

vscode で Java Project を作ってみる

Language Support for Java(TM) by Red Hat エクステンション が入っていれば、EXPLORER の Create Java Project を押すことで Java Project が作れます。配置先パスとプロジェクト名を設定すれば、OK です。

vscode から実行してみる

上記の要領で Java Project を作ると、src/App.java にいわゆる Hello, World! が自動生成されていると思います。そのファイルを開き、右上の ▷ から Run Java を押せば、TERMINAL 内で実行されます。概ね以下のように TERMINAL に出力されると思います。java コマンドのパスが jdk-17.jdk になっていれば OK です。
$  /usr/bin/env /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/java -XX:+ShowCodeDetailsInExceptionMessages -Dfile.encoding=UTF-8 -cp /Users/xxxxxxxx/jdk17sandbox/jdk17sandbox/bin App 
Hello, World!