はじめに
新たなプロジェクト参画に伴い、JDKを環境変数に設定するというセットアップ作業を行いました。
一連の流れを簡単にまとめてみました
2025年10月においての情報になりますので、何かしら異なる場合もあると思いますが、ご承知おきください
対象者
- Windows11環境
JAVA_HOME環境変数の設定手順(Windows 11)
- 設定を開く
画面左下の「スタート」→表示されたメニューで「設定」を選択 - システム情報を開く
設定画面、左側のメニューから「システム」を選択 →「バージョン情報」をクリック - システムの詳細設定を開く
「関連リンク」セクションにある「システムの詳細設定」をクリック - 環境変数の設定
「システムのプロパティ」ウィンドウが開き「詳細設定」タブを選択
「環境変数」ボタンをクリック。 - JAVA_HOMEの設定
「システム環境変数」セクションで「新規」
→「変数名」に JAVA_HOME
→「変数値」に、Javaがインストールされているディレクトリのパスを入力し「OK」で完了
例: C:\Program Files\Java\jdk-17
この設定により、Java関連のツールやアプリケーションがJAVA_HOME環境変数を参照できるようになります。
📌 補足:JDKとJREの違い
JDK(Java Development Kit):Javaの開発に必要なツールやライブラリが含まれています。
JRE(Java Runtime Environment):Javaアプリケーションを実行するための環境が含まれています。
通常、開発を行う場合はJDKをインストールし、そのパスをJAVA_HOMEに設定します。
補足:✅ Javaがインストールされているか確認する方法
- コマンドプロンプトを開く
スタートメニューをクリックし、「cmd」と入力して、表示された「コマンドプロンプト」をクリック - Javaのバージョンを確認する(コマンド認識されなかったらそれはJava未インストールという事)
以下コマンドからバージョン確認
java -version
📂 Javaのインストール先ディレクトリを確認する方法
以下コマンドを実行する事でインストール先ディレクトリを確認することができます
where java
結果が次のような時
C:\Program Files\Java\jdk-11.0.1\bin\java.exe
Javaがインストールされているディレクトリは以下になります
C:\Program Files\Java\jdk-11.0.1
既に違うversionのJDKがインストールされている場合はどうすればいいのか?
仮にバージョン確認の際にJDK21がある事がわかり、JDK17のインストールが必要になった場合
- OpenJDK 17 のインストーラーを普通にダウンロード
- インストーラーを実行
改めて、JAVA_HOME 環境変数の設定
「システム環境変数」セクションで「新規」ボタンをクリックします。
「変数名」に JAVA_HOME と入力し、「変数値」に以下のパスを入力します
C:\Program Files\Java\jdk-17
同じ「環境変数」ウィンドウで、「Path」を選択し、「編集」ボタンをクリックします。
「新規」ボタンをクリックし、以下のパスを追加します。
%JAVA_HOME%\bin
【おまけ】困った事
C:\Users\ユーザー名>java -version
openjdk version "21.0.7" 2025-04-15 LTS
OpenJDK Runtime Environment Microsoft-11369940 (build 21.0.7+6-LTS)
OpenJDK 64-Bit Server VM Microsoft-11369940 (build 21.0.7+6-LTS, mixed mode, sharing)
C:\Users\ユーザー名>echo %JAVA_HOME%
C:\Program Files\Java\jdk-17
C:\Users\ユーザー名>where java
C:\Users\ユーザー名\.jdks\ms-21.0.7\bin\java.exe
C:\Program Files\Java\jdk-17\bin\java.exe
- Java17を使用したいので、設定後納戸確認しても「21」が表示される
- つまり17が反映されていない
✅ どうすれば “JDK 17 を使う” 状態になるか?
環境変数「Path」の確認・修正
「システム環境変数」または「ユーザ環境変数」で Path という変数を編集
リストの中で「%JAVA_HOME%\bin(=JDK 17 のもの)」 がなるべく先頭に来るよう移動または追加
→ なぜ?
Windows は java.exe を Path に書いてある順に探していき、最初に見つかったものを使うから
→ つまり、現状でいうと。
JDK 21 のパス(C:\Users\users.jdks\ms‑21.0.7\bin)が JDK 17 より前にある為、JDK 21 が選ばれている
Path から “余分な” java.exe の場所を外す
Path の中に “ユーザフォルダ内 .jdks\ms‑21.0.7\bin” のような条目があれば、それを 削除または末尾に移動させる
変更後、コマンドプロンプトを再起動して確認
Path を変更したあと、開いていたコマンドプロンプトを閉じてから新しく起動
(環境変数の変更は既に開いていたウィンドウには反映されない!
それでも “21” が出る場合
ユーザ環境変数とシステム環境変数のどちらに Path や JAVA_HOME を設定したか、確認
一部ユーザ変数がシステム変数よりも優先になる場合あり!
※最終手段 →JDK 21 をアンインストールする/またはその bin フォルダを Path から完全に外す
翌日にjava -versionと入力したら21から17になっていた
一つ前の段階で「明日削除しないとな」でいったん終えていました。
そして翌日にjava -versionコマンドを実行したら望んでいた結果になっていました
よし、これで安心。。ともいかず、念には念を。という事で21のほうは削除。
現状再確認
- ユーザー環境変数:
Path に C:\Users\users.jdks\ms-21.0.7\bin が含まれている - システム環境変数:
JAVA_HOME が C:\Program Files\Java\jdk-17 に設定されている
Path に %JAVA_HOME%\bin が追加されている
※この設定では、コマンドプロンプトで java コマンドを実行した際に、
ユーザー環境変数の Path に含まれる JDK 21 が優先され、JDK 17 が使用されない可能性あり!
21削除する
手順というほどのモノでもないのですが、単純に「ユーザー環境変数の Path から JDK 21 のパスを削除」
参考記事
さいごに
環境変数の設定がすぐに反映されないのは困る、、
なにかいい方法はないのか?
新規プロジェクト参画時のエディタ等インストールの際には、設定以外のタスクも用意した状態で進めると、時間を持て余すことがなさそう。