2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java複数バージョンの共存 対応環境Windows(VSCode)/Linux

Last updated at Posted at 2024-03-08

ここで言う共存は単一プロジェクト内の共存ではなく、OS上での共存。
例えば、Java11とJava17を楽に切り替えて動作検証テストしたいとき。
システム環境変数でJDKを設定するとバージョン切り替える毎に再設定し端末再起動が必要になってしまう。

vscode(windows版)とlinuxの2パターンについて記載する。

VSCode(Windows)

ワークスペースで使い分ける方法。
VScodeの設定画面からユーザータブではなくワークスペースタブ側にJava Homeを設定する。
なお、ユーザー側よりワークスペース側の設定の方が優先度が高い。

settings.jsonに設定される内容

(Java11のワークスペース)settings.json
"java.jdt.ls.java.home":"C:〜11〜"
(Java17ワークスペースの)settings.json
"java.jdt.ls.java.home":"C:〜17〜"

※VSCodeでJavaHomeを設定していなければOSのシステム環境変数が使用される。
※VSCodeのバージョンが古い場合のプロパティ名は"java.home"になる。

Linux

セッション毎で使い分ける方法。

ウィンドウ1
export JAVA_HOME='~11~'
ウィンドウ2
export JAVA_HOME='~17~'
パスの設定確認
echo $JAVA_HOME

パスが表示されれば設定は成功している。

セッション切れても設定維持したい場合は
.bashrcファイルに記載する。
なければviで作成する。

vi ~/.bashrc
.bashrc
export JAVA_HOME='~11~'

#1つしか設定できないので17はコメントアウト
#export JAVA_HOME='~17~' 

#おまけ
#エイリアスで入力を簡易化
alias java11='export JAVA_HOME='~11~''
alias java17='export JAVA_HOME='~17~''

補足
.bashrcを新規作成した場合、閉じて再立ち上げると.bash_profileが作成される。
.bash_profileはログイン時のみ実行され、.bashrcを読み込む。.bashrcはシェル実行都度読まれる。
参考:

2
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?