Windows環境で開発ツール(Android Studio, Gradle, Kotlinなど)を使おうとした際、以下のようなエラーに遭遇することがあります。
JDK 17 or higher is required. Please set a valid Java home path to java…
「JDK 17以上が必要」と言われると、「バージョンが古いのかな?」と思いがちですが、実はそもそもJavaがインストールされていないことが原因であるケースが非常に多いです。
この記事では、このエラーの正体と、最短で解決する方法(wingetコマンド)を紹介します。
エラーの正体
エラーメッセージは「JDK 17以上が必要」と言っていますが、システム内部では以下のような状態になっています。
- java コマンドを実行しようとする
- コマンドが見つからない(CommandNotFoundException)
- ツール側が「Javaが使えない=要件を満たしていない」と判断
- 「JDK 17 or higher is required」という定型文を表示
つまり、「バージョンが古い」のではなく「存在しない」のです。
PowerShellで java -version を実行してみてください。 赤字でエラーが出る場合、Javaはインストールされていません(またはPATHが通っていません)。

最短の解決手順
インストーラーをダウンロードしてポチポチする必要はありません。Windows標準のパッケージマネージャー winget を使えば、コマンド一発で解決します。
Step 1: JDK 17 をインストール
PowerShellを開き、以下のコマンドを実行します。
winget install EclipseAdoptium.Temurin.17.JDK
ポイント: このコマンドは、安定版として定評のある Eclipse Adoptium (Temurin) の JDK 17 をインストールし、自動的に環境変数(PATH, JAVA_HOME)も設定してくれます。
Step 2: ターミナルを再起動
インストールが終わったら、必ず現在開いているターミナル(PowerShellやVS Code)を閉じて、新しく開き直してください。 環境変数の変更を反映させるためです。
Step 3: 動作確認
新しいターミナルで、以下のコマンドを実行します。
java -version
以下のように表示されれば成功です。
openjdk version "17.x.x" ...
それでも直らない場合
もし java -version がエラーになる場合は、環境変数が正しく設定されていない可能性があります。
確認コマンド:
echo $env:JAVA_HOME
これが出力されない、または間違ったパスになっている場合は、環境変数の設定を見直す必要がありますが、winget で入れた場合は通常自動設定されます。
まとめ
「JDK 17 required」エラーが出たら、まずは Javaが入っているか を疑いましょう。 winget を使えば、複雑な設定なしで一発で環境構築が完了します。