概要
複数バージョンのCorrettoを1つの環境で使い分ける必要性に迫られた時に、どの様に管理すれば良いか備忘録を残しておこうと思います。
事の起こり
筆者は以下の過去記事で投稿した様に、OracleのOpenJDKではなく、AWSがリリースしているCorretto 24のOpenJDKを利用しています。しかし、Java 8にのみ対応しているアプリケーションを動かす必要性に迫られたため、Corretto 8もインストールしました。この場合、1つの環境に複数のバージョンのJavaがインストールされていることになります。メインで利用するバージョンはJava 24で必要な時に、Java 8を利用したい。この様な問題を解決する方法が本記事の内容です。
- 過去記事
$ java --version
openjdk 24.0.1 2025-04-15
OpenJDK Runtime Environment Corretto-24.0.1.9.1 (build 24.0.1+9-FR)
OpenJDK 64-Bit Server VM Corretto-24.0.1.9.1 (build 24.0.1+9-FR, mixed mode, sharing)
- Javaアプリ
以下の書籍付属のSQL反復学習ソフトウェア「SQUAT」はJava 8のみ対応です。よって、Java 24で動かそうとすると起動しません。
複数バージョンを同居させる
筆者の環境ではHomebrewでCorrettoをインストールしていますが、複数のバージョンがインストールされています。メインで利用するバージョンはCorretto 24(無印)です。
$ brew search corretto
==> Formulae
cortexso
==> Casks
corretto ✔ corretto@11 corretto@21 corretto@8 ✔
Java 8を利用したい場合
Corretto OpenJDK本体がインストールされているディレクトリは以下です。
ls /Library/Java/JavaVirtualMachines/
amazon-corretto-24.jdk amazon-corretto-8.jdk openjdk-17.jdk openjdk.jdk
バージョンを表示させるオプションがバージョン間で微妙に異なります。
$ /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home/bin/java -version
openjdk version "1.8.0_462"
OpenJDK Runtime Environment Corretto-8.462.08.1 (build 1.8.0_462-b08)
OpenJDK 64-Bit Server VM Corretto-8.462.08.1 (build 25.462-b08, mixed mode)
よって、Java 8が必要となるアプリケーションを利用する時は、上記ディレクトリのjava
バイナリを指定してアプリケーションを実行すると正常に動作します。SQATの起動スクリプトを改造して上記ディレクトリのjavaバイナリ
で実行するように修正して起動すると正常に動作しました。
まとめ
複数バージョンのCorretto OpenJDKを1つの環境で利用する方法について備忘録メモをまとめました。最近Javaを利用する機会が減ってしまったので少々懐かしく思いながら今回の検証を行いました。