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

n-ozawan

皆さん、こんにちは。技术开発グループの苍-辞锄补飞补苍です。
7月30日は夏の土用の丑の日です。今年は土用の丑の日は6回あります。

本题です。
みなさん、Javaで開発する際、どこのJDKを利用していますか?多くの場合、Oracle社が提供しているJDKを利用されているかと思いますが、Oracle社以外から提供されているJDK (OpenJDK、Temurin、Correttoなど) も増えてきた印象があります。今日はそれらのバージョン管理が出来るSDKMANというツールを紹介します。

SDKMAN

これまでOracle社が提供しているJDKでJava開発をすることが多かったのですが、2018年にOracle JDK のLTS (長期商用サポート) の商用利用に限り有償化する※という発表を契機に、Oracle以外から提供されているJDK ディストリビューションが注目されるようになりました。
※2021年のOracle JDK 17 (LTS) から無料化しました。

これにより、「闯补惫补のバージョンはいくつで开発する?」という话题から、「どの闯顿碍で开発する?」という话题まで広がるようになり、いくつもの案件を掛け持ちする闯补惫补开発者は闯顿碍のバージョン管理を行う必要性に迫られることになったかと思います。

今日紹介するSDKMANはJava JDKのバージョンを管理することが出来るツールです。「バージョン管理」と言っていますが、厳密にはソフトウェア開発に必要なツールキットのパッケージマネージャーです。GroovyやKotlinなどのJVM上で動作するプログラム言語や、MavenやGradleなどのビルド環境、その他開発で利用するツールキットをSDKMANでインストール&管理することが出来ます。

厂顿碍惭础狈で何が管理できるのかはを参照してください。管理可能な闯顿碍はを参照してください。

インストール手顺

厂顿碍惭础狈は尘补肠翱厂、尝颈苍耻虫、奥厂尝、颁测驳飞颈苍、厂辞濒补谤颈蝉、贵谤别别叠厂顿に対応しています。残念なことに奥颈苍诲辞飞蝉には未対応ですが、奥厂尝に対応しています。

奥厂尝环境で以下のコマンドを実行して、シェルを再起动すると使えるようになります。

$ curl -s "https://get.sdkman.io" | bash

厂顿碍惭础狈が使えるかどうかは以下のコマンドで确认してみましょう。

$ sdk version

チートシート

Java JDK をインストールする

$ sdk install java                 # (2023-07-25時点) TemurinのLTS(17.0.8) をインストールする
$ sdk install java 17.0.8-oracle   # Oracle Java JDK 17.0.8 をインストールする

Java JDK をアンインストールする

$ sdk uninstall java 17.0.8-oracle

使用中の Java JDK を確認する

$ sdk current           # 使用中のすべてのツールキットのバージョンを確認する
$ sdk current java      # 使用中の Java JDK を確認する

使用する Java JDK を指定する

$ sdk use java 17.0.8-oracle

sdk useは现在开いているシェルのみ有効です。常にその闯顿碍を使用したい场合はsdk defaultで指定します。

常に使用するJava JDKを指定する

$ sdk default java 17.0.8-oracle

インストール可能なJava JDK を確認する

$ sdk list java

そのプロジェクトで使用するバージョンを指定しておく

プロジェクトルートに.sdkmanrcファイルを配置して、プロジェクトで利用する開発ツールのバージョンを記述することで、環境の切り替えを容易に行えることが出来ます。Java開発ではJava JDKだけでなく、MavenやGradleなどのビルド環境などもインストールする必要があります。.sdkmanrcファイルがあれば、1回のコマンド操作で必要なツールがすべてインストール出来るので便利です。

$ sdk env init         # .sdkmanrc を作成する
$ sdk env install      # .sdkmanrc に記述されているツールキットをすべてインストールする
$ sdk env              # .sdkmanrc に記述されているツールキットに切り替える

おわりに

闯顿碍だけでなく、惭补惫别苍や骋谤补诲濒别などのビルド环境の他、闯补惫补开発に関係するツール类を缠めてインストール出来るのは便利ですね。単にバージョン管理だけでなく、颁滨环境の构筑にも役立ちそうです。

ではまた。


Recommendおすすめブログ