背景
Oracle Javaも商用利用が有償化したらしいし、GUIでインストールしたり面倒だったので、なんとなくJavaScriptのnodenv
みたいにCLIでJavaもバージョン管理できるようにしたいなと思って調べてみました。
xxxenv
みたいなJavaのバージョン管理ツールはないのか?
jenv
なるものがありました。
ただ、Java自体は自力でインストールする必要があるらしく、あくまでjenv
はバージョン切り替えツールという位置付けっぽいようでした。
nodenv
みたいにインストールもバージョン切り替えもできるのがいいなぁ。
SDKMAN
インストールもバージョン切り替えもできるもので探すと、SDKMANというのがありました。
以下を参考にインストールしました。
#Java: vol1: 【 java・JDKバージョン管理 ベストプラクティス 】
ちなみに今回はAdoptOpenJDKのJava 8をインストールしようとしましたが、list
には2つ出てきました。
% sdk list java
8.0.252.j9-adpt
8.0.252.hs-adpt
調べてみるとJVMが違うらしい。
AdoptOpenJDKのダウンロード及びインストール
j9
= OpenJ9
Eclipse OpenJ9 は Eclipse コミュニティーの JVM です。低メモリ使用量と高速起動用に設計されたエンタープライズクラスの JVM であり、 IBM の JDK で使用されています。
hs
= HotSpot
HotSpot は OpenJDK コミュニティの JVM です。 現在最も広く使用されている JVM であり、 Oracle の JDK で使用されています。
という意味らしいので、今回は無難に従来のOracleと同じhs
にしてみました。
(OpenJ9の方がエンタープライズ向けで高機能ってことかな。将来的にはこっちの方がいいのかな?)
Oracle Javaをアンインストール
こちらを参考でいけたと思う。。。(うろ覚え)
MacでのJavaのアンインストール方法
Oracle Javaをアンインストールしたら、例のダイアログが表示されてしまう!
IntelliJ IDEAを起動する度に"java"コマンドラインツールを使用するには、JDKをインストールする必要があります。
みたいなダイアログがsdkman
でJavaインストール後も表示され続けてしまいました。
対策は、File > Invalidate Caches / Restart
でダイアログが表示されなくなりました。
JDKs installed with SDKMAN are not selectable in the IntelliJ IDE
確認
% java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)
また、IntelliJ IDEAで従来のJavaプロジェクトをRunできました。
とりあえず大丈夫そうです。
今後の課題
これでAndroidの開発環境も移行できていたと思ってたら、Android StudioにはJDKが同梱されているみたいですね。
こいつの正体は何だろう。Androidはまた必要になったら考えたいと思います。
/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
openjdk version "1.8.0_242-release"
OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
OpenJDK 64-Bit Server VM (build 25.242-b3-6222593, mixed mode)