JDKバージョンの切り替えって面倒ですよね!
ここではSDKMANを導入してJDKバージョンを簡単に
切り替えれるようにします!
新しいJDKバージョンを試したい時、すでに使用しているバージョンから切り替えるのって結構手間ですよね…
でもSDKMANを使うとコマンド1発でJDKバージョンを切り替えれるようになります!
SDKMANのセットアップ
SDKMANをインストールする
公式サイトの手順に従ってインストールしていきます。
手順はコマンドを実行していくだけなので簡単です。
また、公式サイトにも記載がありますがBash シェルと ZSH シェルの両方と互換性があるようです。
コマンドはコピーしてターミナルから実行します。
インストール
以下のコマンドでインストールします。
curl -s "https://get.sdkman.io" | bash
SDKMANを有効化する
次に以下のコマンドで初期化スクリプトを読み込み、SDKMANを有効化します。
source "$HOME/.sdkman/bin/sdkman-init.sh"
インストールの確認
最後に次のコマンドを入力して、sdkmanが正常にインストールされたことをことを確認します。
sdk version
次のようにバージョン情報が出力されれば成功です!
SDKMAN!
script: 5.18.2
native: 0.4.2
SDKMANを使ってJDK(Java)をインストールする
JDK(Java)をインストールする
インストール可能なJavaの一覧を表示する
sdk list java
コマンドを実行するとインストール可能なJDKの一覧が表示されます。
OracleやTemurinなど提供ベンダーごとに利用可能なJDKの一覧が表示されます。(かなりの量になるため一部省略しています)
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
・・・省略
JetBrains | | 17.0.8 | jbr | | 17.0.8-jbr
| | 17.0.7 | jbr | | 17.0.7-jbr
| | 11.0.14.1 | jbr | | 11.0.14.1-jbr
・・・省略
Microsoft | | 17.0.8.1 | ms | | 17.0.8.1-ms
| | 17.0.8 | ms | | 17.0.8-ms
| | 17.0.7 | ms | | 17.0.7-ms
| | 11.0.20.1 | ms | | 11.0.20.1-ms
| | 11.0.20 | ms | | 11.0.20-ms
| | 11.0.19 | ms | | 11.0.19-ms
Oracle | | 20.0.2 | oracle | | 20.0.2-oracle
| | 20.0.1 | oracle | | 20.0.1-oracle
| | 17.0.8 | oracle | | 17.0.8-oracle
| | 17.0.7 | oracle | | 17.0.7-oracle
・・・省略
Temurin | | 20.0.2 | tem | | 20.0.2-tem
| | 20.0.1 | tem | | 20.0.1-tem
| | 17.0.8 | tem | | 17.0.8-tem
| | 17.0.8.1 | tem | | 17.0.8.1-tem
| | 17.0.7 | tem | | 17.0.7-tem
| | 11.0.20 | tem | | 11.0.20-tem
| | 11.0.20.1 | tem | | 11.0.20.1-tem
| | 11.0.19 | tem | | 11.0.19-tem
・・・省略
================================================================================
一覧からJDK(Java)をインストールする
一覧からJDKをインストールするときは以下のコマンドを入力します。
先ほどの一覧で「Identifier」に表示されていたバージョンを指定します。
今回はTemurinのバージョン17.0.8.1をインストールします。
sdk install java 17.0.8.1-tem
インストールしたJDK(Java)のバージョンを確認する
次のコマンドでインストールしたバージョンを確認します。
java -version
以下のように表示されていれば成功です!
openjdk version "17.0.8.1" 2023-08-24
OpenJDK Runtime Environment Temurin-17.0.8.1+1 (build 17.0.8.1+1)
OpenJDK 64-Bit Server VM Temurin-17.0.8.1+1 (build 17.0.8.1+1, mixed mode)
SDKMANを使ってJDK(Java)を切り替える
SDKMANでインストール済みのJDKを確認する
ローカルにインストールされているJDKのバージョンを確認します。
インストール可能なJDKの一覧を表示するコマンドを入力します。
sdk list java
一覧に「installed」とマークされているのがインストールされているJDKです。
「>>>」とマークされているのは現在使用中のJDKです。(カレントのJDKバージョン)
Temurin | | 20.0.2 | tem | installed | 20.0.2-tem
| | 20.0.1 | tem | | 20.0.1-tem
| | 17.0.8 | tem | | 17.0.8-tem
| >>> | 17.0.8.1 | tem | installed | 17.0.8.1-tem
| | 17.0.7 | tem | | 17.0.7-tem
| | 11.0.20 | tem | | 11.0.20-tem
| | 11.0.20.1 | tem | | 11.0.20.1-tem
| | 11.0.19 | tem | | 11.0.19-tem
SDKMANでJDK(Java)を切り替える
JDKを切り替えるには次のコマンドを入力します。
今回はバージョン20.0.2に切り替えてみます。
sdk default java 20.0.2-tem
次に一覧を確認します。
sdk list java
先ほどの「>>>」の位置が切り替え後のバージョンにマークされているのが確認できます。
Temurin | >>> | 20.0.2 | tem | installed | 20.0.2-tem
| | 20.0.1 | tem | | 20.0.1-tem
| | 17.0.8 | tem | | 17.0.8-tem
| | 17.0.8.1 | tem | installed | 17.0.8.1-tem
| | 17.0.7 | tem | | 17.0.7-tem
| | 11.0.20 | tem | | 11.0.20-tem
| | 11.0.20.1 | tem | | 11.0.20.1-tem
| | 11.0.19 | tem | | 11.0.19-tem
Javaコマンドでバージョンを確認してみます。
java -version
次のように表示され、バージョンが切り替わっていることが確認できれば成功です!
openjdk version "20.0.2" 2023-07-18
OpenJDK Runtime Environment Temurin-20.0.2+9 (build 20.0.2+9)
OpenJDK 64-Bit Server VM Temurin-20.0.2+9 (build 20.0.2+9, mixed mode)
これでコマンド1発でJDKが切り替えれるようになりました!
現在ログイン中のターミナルの中だけでJDKを切り替える(おまけ)
SDKMANには現在のターミナルの中だけ特定のバージョンに切り替えるコマンドも用意されています。
例えば試しに新しいバージョンでアプリケーションの動作確認をしたいけどデフォルトはそのままにしておきたい場合などに重宝します。
sdk use java 17.0.8.1-tem
javaコマンドで確認してみます。
java -version
17.0,8.1が表示されましたので正常に切り替わっていますね。
openjdk version "17.0.8.1" 2023-08-24
OpenJDK Runtime Environment Temurin-17.0.8.1+1 (build 17.0.8.1+1)
OpenJDK 64-Bit Server VM Temurin-17.0.8.1+1 (build 17.0.8.1+1, mixed mode)
違うターミナルを起動して、再度Javaコマンドで確認します。
java -version
元の20.0.2が表示されましたので、デフォルトは変更されていないことが確認できました。
openjdk version "20.0.2" 2023-07-18
OpenJDK Runtime Environment Temurin-20.0.2+9 (build 20.0.2+9)
OpenJDK 64-Bit Server VM Temurin-20.0.2+9 (build 20.0.2+9, mixed mode)