1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaをSDKMANでバージョン管理する

Last updated at Posted at 2020-06-13

背景

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)
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?