2
2

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.

WSL(Ubuntu)でのJavaバージョンの切り替え方法

Posted at

開発で結構頻繁にJavaのバージョンを切り替えるのに、
いつも忘れて毎回検索してしまうのでまとめておきます。

alternativesを使う方法

前提として以下のような感じでaptで複数のJDKがインストールされているとします。
※普通同時に複数バージョンをインストールしたりはしないでしょうが・・・

$ sudo apt install openjdk-11-jdk openjdk-17-jdk

切り替え

切り替える場合は以下のコマンドを実行します。

$ sudo update-alternatives --config java

するとこんなメニューが出てくるので

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      auto mode
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      manual mode

Press <enter> to keep the current choice[*], or type selection number:

有効にしたいバージョンの数字を入れてenterでそのバージョンに変更されます。

sdkmanを使う方法

aptで入らないバージョンやJDKを使いたい場合などはsdkmanを使う方法もあります。

skdmanは https://sdkman.io/install ここを参考にインストールされているものとします。

インストールできるJDKの一覧

$ sdk list java

インストール

$ sdk install java 17.0.5-amzn

※Correttoの17.0.5を入れる場合。
一覧のIdentifierの値を第三引数に指定することで特定のJDKがインストールできます。

切り替え

$ sdk use java 8.0.352-amzn

現在選択されているバージョン表示

$ sdk current java
Using java version 8.0.352-amzn

デフォルトの指定

$ sdk default java 8.0.352-amzn

シェル起動時のデフォルトのバージョンを指定します。

方法別のメリットデメリット

まとめてみるとインストールの手間はあるもののsdkmanのほうが開発者向きな気がします。

alternatives

  • メリット
    • 特別なツールをインストールする必要がない
  • デメリット
    • システム全体の設定が変わってしまうため、コンソールごとに違うバージョンを使うことはできない。

sdkman

  • メリット
    • シェルごとに切り替えられるため、別バージョンを使い分けることが可能。
    • いろいろなJDKが切り替えて使える。
  • デメリット
    • sdkman自体のインストールが必要。
2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?