1. 概要

Javaの新しいリリースサイクルでは、開発者は環境内のソフトウェア開発キット(SDK)の並列バージョンと異なるビルドを管理する必要があるかもしれません。 そのため、PATH変数を設定することは、時には非常に困難になる可能性があります。

このチュートリアルでは、SDKMANがどのように機能するかを見ていきます。 SDKのインストールと選択を簡単に管理するのに役立ちます。

2. SDKMANとは!?

SDKMAN! 複数のSDKの並列バージョンを管理するためのツールです。SDKMAN! 「候補者」と呼ぶ

候補の一覧表示、インストール、切り替え、削除に便利なコマンドラインインターフェイス(CLI)とAPIを提供します。 さらに、環境変数の設定も行います。

また、開発者はJava、Groovy、Scala、Kotlin、CeylonなどのJVMベースのSDKをインストールできます。 Maven、Gradle、SBT、Spring Boot、Vert.x、およびその他の多くもサポートされています。 SDKMAN! は、Bashで記述された無料の軽量なオープンソースユーティリティです。

3. SDKMANをインストールしてください!

SDKMAN! すべての主要なオペレーティングシステムでサポートされており、すべてのUnixベースのシステムに簡単にインストールできます。 さらに、BashおよびZshシェルをサポートします。

それでは、ターミナルを使用してインストールすることから始めましょう。

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

次に、画面の指示に従ってインストールを完了します。

インストールプロセスを完了するには、zipパッケージとunzipパッケージをインストールする必要がある場合があります。

次に、新しいターミナルを開くか、次を実行します。

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

最後に、次のコマンドを実行して、インストールが機能したことを確認します。 すべてがうまくいけば、バージョンが表示されます。

$ sdk version
SDKMAN 5.8.5+522

その他のカスタマイズについては、SDKMANのインストールガイドを参照してください。 Webサイト。

使用可能なすべてのコマンドを表示するには、helpコマンドを使用します。

$ sdk help

4. すべてのSDK候補を一覧表示

それでは、利用可能なすべてのSDK候補をリストすることから始めましょう。

$ sdk list

list コマンドは、一意の名前、説明、公式Webサイト、およびインストールコマンドで識別される、使用可能なすべての候補を表示します。

=====================================================
Available Candidates
=====================================================
q-quit                                  /-search down
j-down                                  ?-search up
k-up                                    h-help
-----------------------------------------------------
Java (11.0.7.hs-adpt)                https://zulu.org
...
                                   $ sdk install java
-----------------------------------------------------
Maven (3.6.3)                https://maven.apache.org
...
                                  $ sdk install maven
-----------------------------------------------------
Spring Boot (2.3.1.RELEASE)          http://spring.io
...
                             $ sdk install springboot
------------------------------------------------------
...

したがって、この識別子を使用して、Spring Boot(2.3.1.RELEASE)やMaven(3.6.3)などの候補のデフォルトバージョンをインストールできます。 このリストで指定されているバージョンは、各SDKの安定バージョンまたはLTSバージョンを表しています。

5. Javaバージョンのインストールと管理

5.1. バージョンの一覧表示

使用可能なJavaのバージョンを一覧表示するには、listコマンドを使用します。 結果は、ベンダーごとにグループ化され、バージョン別にソートされたエントリのテーブルです。

$ sdk list java
===================================================================
Available Java Versions
===================================================================
Vendor       | Use | Version | Dist    | Status | Identifier
-------------------------------------------------------------------
AdoptOpenJDK |     | 14.0.1  | adpt    |        | 14.0.1.j9-adpt
...
Amazon       |     | 11.0.8  | amzn    |        | 11.0.8-amzn
...
Azul Zulu    |     | 14.0.2  | zulu    |        | 14.0.2-zulu
...
BellSoft     |     | 14.0.2  | librca  |        | 14.0.2.fx-librca
...
GraalVM      |     | 20.1.0  | grl     |        | 20.1.0.r11-grl
...
Java.net     |     | 16.ea   | open    |        | 16.ea.6-open
...
SAP          |     | 14.0.2  | sapmchn |        | 14.0.2-sapmchn
...

候補者のストレージを確認、切り替え、または管理するたびに、このコマンドが必要になります。

5.2. Javaバージョンをインストールする

AzulZuluからJava14の最新ビルドをインストールしたいとします。 したがって、テーブルのバージョンである識別子をコピーし、installコマンドの引数として追加します。

$ sdk install java 14.0.2-zulu
Downloading: java 14.0.2-zulu
In progress...
########### 100.0%
Repackaging Java 14.0.2-zulu...
Done repackaging...
Installing: java 14.0.2-zulu
Done installing!
Setting java 14.0.2-zulu as default.

SDKMAN! このバージョンをダウンロードして、コンピュータのディレクトリに解凍します。

さらに、ターミナルでJavaをすぐに使用できるように、環境変数を更新します。

list コマンドを使用して、任意のバージョンのステータスと使用状況を確認できます。 その結果、バージョン 14.0.1 i がインストールされ、使用されています。

$ sdk list java
=================================================================
Available Java Versions
=================================================================
 Vendor    | Use | Version | Dist    | Status    | Identifier
-----------------------------------------------------------------
 ...
 Azul Zulu | >>> | 14.0.1  | adpt    | installed | 14.0.1.j9-adpt
 ...

さらに、同じコマンドを使用して、追加の引数としてバイナリのパスを指定することにより、Javaまたは任意のカスタムバージョンをコンピューターからインストールすることができます。

$ sdk install java custom-8 ~/Downloads/my-company-jdk-custom-8

5.3. バージョンの切り替え

バージョン間の切り替えは、一時的に2つの形式で制御できます。

$ sdk use java 14.0.1.j9-adpt

または恒久的に:

$ sdk default java 14.0.1.j9-adpt

5.4. バージョンを削除する

インストールされているバージョンを削除するには、対象のバージョンでuninstallコマンドを実行します。

$ sdk uninstall java 14.0.1.j9-adpt

5.5. 使用中のバージョンを表示する

Javaの現在のバージョンを確認するには、currentコマンドを実行します。

$ sdk current java
Using java version 14.0.2-zulu

同様に、最後のコマンドは次と同じ効果があります。

$ java -version

マシン上でSDKによるバージョンを表示するには、引数なしでcurrentコマンドを実行できます。

$ sdk current
Using:
java: 14.0.2-zulu
gradle: 6.2.2

6. SDKMANを使用する! IDEで

インストールされたSDKはSDKMANに保存されます! デフォルトが〜/ .sdkman /candidatesのディレクトリ。

たとえば、さまざまなバージョンのJavaも〜/ .sdkman / candidates / java / ディレクトリで利用可能であり、サブディレクトリはバージョンにちなんで名付けられています。

$ ls -al ~/.sdkman/candidates/java/
total 0
drwxrwxrwx 1 user user 12 Jul 25 20:00 .
drwxrwxrwx 1 user user 12 Jul 25 20:00 ..
drwxrwxr-x 1 user user 12 Jul 25 20:00 14.0.2-zulu
lrwxrwxrwx 1 user user 14 Jul 25 20:00 current -> 14.0.2-zulu

したがって、現在選択されているバージョンのJavaも、そのディレクトリで現在のバージョンとして使用できます。

同様に、Gradleまたはその他のSDKはcandidatesディレクトリの下にインストールされます。

このようにして、たとえばお気に入りのIDEで、特定のバージョンのJavaを使用できます。 特定のバージョンのパスをコピーして、IDEの構成に設定するだけです。

6.1. IntelliJ IDEA

IntelliJ IDEAで、「プロジェクト構造」を開き、次に「プロジェクト設定」を開きます。 プロジェクト構成で、「ProjectSDK」セクションから「New…」を選択することにより、新しいJavaバージョンを追加できます。

「ビルドツール」セクションで使用するJava、Gradle、またはMavenのバージョンを定義することもできます。

ヒント:Javaのバージョンは、GradleまたはMavenの「ProjectSDK」で使用されているものと同じである必要があります。

6.2. Eclipse

Eclipseで「プロジェクトのプロパティ」を開き、「Javaビルドパス」を選択してから、「ライブラリ」タブに切り替えます。 ここでは、「ライブラリの追加…」を介して、次の手順に従ってJavaの新しいSDKを管理できます。

また、すべてのプロジェクトにインストールされているSDKを制御することもできます。 「ウィンドウ」メニューの「設定」を開き、「インストールされているJRE」に移動します。 ここでは、「追加…」を介して、次の手順に従ってJavaのSDKを管理できます。

7. 結論

このチュートリアルでは、SDKMAN! Mavenなどの他のJava環境ツールの中でさまざまなバージョンのJavaSDKを管理するのに役立ちます。