寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

Mac OS 10.15 (Catalina) にOracle JDKを複数インストールして管理する方法

f:id:chidakiyo:20200406111529j:plain

MacJDKをインストールすることって開発者の人であればまぁまぁあることだと思いますが
確定申告などでJDK 8(JREでよいが)など古いバージョンが必要、などと言われることがありますよね。

そんな場合にCatalinaに複数のOracle Javaをインストールして管理する方法があります。
(これの他にも方法がありますが、OS標準で用意されているのはこちらになります)

Oracle JDKを普通にパッケージでインストールする

このへんOracleのサイトから各バージョンのJDKのダウンロードが行えます。
今回は、JDK1.8(Java SE 8)と、JDK11(Java SE 11)をインストールする例でやってみます。
その他のバージョンをインストールする場合も同様のイメージです。

  • Java SE 8 をダウンロードする(インストーラ付きのものを選択しましょう、拡張子が.dmgのものです)
  • Java SE 8 をインストールする

インストールはダブルクリックするだけなので特に詳細は書きません。
ダブルクリックしてインストーラをポチポチするだけです。

同様に、

  • Java SE 11 をダウンロードする(同様に拡張子が.dmgのもの)
  • Java SE 11 をインストールする

Javaを切り替える仕組みを用意する

切り替える仕組みは /usr/libexec/java_home を利用します。

Catalinaの場合標準シェルがzshになっているはずなので、 .zshrc ファイルを修正し、設定を適用します。

Java SE 8 を利用する場合

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

Java SE 11 を利用する場合

export JAVA_HOME=`/usr/libexec/java_home -v 11`

いい具合に使い分ける場合

以下のように利用していないバージョンをコメントアウトしておくと良いと思います。

#export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export JAVA_HOME=`/usr/libexec/java_home -v 11`

まとめ

とくにまとめに書くこともないですが、
つい1ヶ月ほど前に新しいMacをかって、このMacにはいつまでJavaを入れずに我慢できるかという誰得の試みをひっそりとやっていたのですが、確定申告というイベントのためにインストールせざるを得なくなり、なんか古臭いJavaをインストールする羽目になったり悲しいですね。

Javaを10年以上書いてきましたが(Scalaも合わせるとJVMとの付き合いは長い)、最近はJVM要らないんじゃないかなどと過激なことを思いつつ。

書くことないと言いながら適当なことを書きましたが
Oracle JDKの場合にはこの方法で良いですがOpenJDKなどと混在する場合には他のツールを使ったほうが良いみたいです。

ではでは。