LoginSignup
4

posted at

updated at

複数の JAVA_HOME と PATH 環境変数の設定切り替えと確認

VSCode での Java バージョン切り替え

VSCode では Java Extension Pack JDK Auto という複数の Java バージョンを自動設定する拡張機能を提供しています。この拡張を導入すると、JDK がインストールされている場合は自動的に検出され、インストールされていない場合は自動ダウンロードされるため、JDK のインストールや JAVA_HOME、PATH 環境変数の設定が不要です。また、コマンドを実行する VSCode 内のターミナルも簡単にバージョン別に起動できます。
VSCodeターミナルでのJavaバージョン切り替え
以降では、Pleiades All in One での設定方法について記載しています。

JAVA_HOME の設定が不要な人

最近は複数バージョンの Java を使用して開発する機会が多くなってきましたが、Pleiades All in One Java の Java Full Edition には、主要な LTS バージョンの Java が付属設定済みのため、JDK のダウンロードやインストールおよび設定が不要で、

Eclipse 上で使用する場合は JAVA_HOME や PATH 環境変数の設定も不要です。

プロジェクト設定や実行構成で Java のバージョンを選択しておくだけで、Eclipse の実行メニューから Java メインクラスや Maven コマンドを実行したり、Gradle タスク・ビューから実行できます。

  • Eclipse が使用する Java のバージョン

    • Eclipse 起動 VM は eclipse.ini の -vm 指定や直下の jre ディレクトリ。
    • Eclipse 上での Gradle や Maven、Java メイン、JUnit などの実行は、Eclipse 上の実行構成の指定。
  • Eclipse のメニューからコマンドプロンプトを起動する場合の注意
     
    Eclipse パッケージ・エクスプローラー右クリック(以下のいずれか)
    方法1: コマンド・プロンプト (Windows のコマンドプロンプトが開く)
    方法2: 表示 → ターミナル (Eclipse のビュー上で開く)
    方法3: ローカル・ターミナルに表示 → ターミナル (同上)

    • 一時的に PATH 先頭に Eclipse 起動 VM の bin が追加される(JAVA_HOME 無視)。
    • JAVA_HOME は Eclipse 起動時の JAVA_HOME(Eclipse 設定は使用されない)。
       
      👆 たとえば、PATH が Java 17 なのに、JAVA_HOME が 11 とかになり、java -version で確認すると 17 になる気持ち悪い状態になったりするという意味です。Eclipse 起動 VM 以外の Java バージョンでコマンドプロンプトを使用したい場合は、次項に従って JAVA_HOME を設定し、Eclipse からではなく Windows エクスプローラーのアドレスバーに cmd と入力するなどしてコマンドプロンプトを起動してください。

JAVA_HOME の設定が必要な人

コマンドプロンプトから Gradle や Maven などのコマンドを実行する場合、JAVA_HOME と PATH 環境変数の設定が必要です。

ただ、頻繁に切り替える場合、GUI の環境変数設定ダイアログからの変更が面倒だったり、コマンド使うにしても setx を使ってはいけない理由 があったり、Windows 再起動が必要な場合があったり、色々考慮が必要だったします。なので、Pleiades All in One 付属の JDK を簡単確実に JAVA_HOME と PATH を設定できるように、2022-06 からは下記のバッチファイルが付属しています(Mac 用はコマンドで JAVA_HOME を単純にセットするだけなので用意していません)。

Pleiades All in One の java ディレクトリ

使い方

  • set-JAVA_HOME-{n}.cmd をダブルクリック。{n} は設定したい Java のバージョン。
  • show-JAVA_HOME.cmd は現在の JAVA_HOME や関連コマンドのバージョンを確認。

例: set-JAVA_HOME-11.cmd 実行結果
Java 17 から 11 に切り替えたときの表示は、こんな感じ。変更前/後の JAVA_HOME、変更後の PATH と java.exe、javac.exe のそれぞれのバージョンを確認表示します。すでに開いているコマンドプロンプトに反映するには、開きなおす必要があります。
JAVA_HOME セットコマンドの実行結果

参考: バッチファイルの処理内容

  • PowerShell で管理者起動 (システム環境変数に設定するため)
  • setx コマンドで JAVA_HOME システム環境変数設定
  • VBScript で PATH システム環境変数内の % 展開前の値を取得
  • PATH に %JAVA_HOME%\bin が含まれていない場合は先頭に追加
  • Chocolatey の RefreshEnv でレジストリに即時反映

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
What you can do with signing up
4