【JAVA】JAVA_HOMEがないって言われたのでPATH通した

この記事は最新更新日から、4年以上経過しています。

概要

IntelliJ IDEAでとあるオープンソースをビルドしようとしたのですがむだにつまづいたのでメモ。
JAVA_HOMEにPATHが通ってなかったので、環境変数にコマンドプロンプトからJAVA_HOMEを追加しました。

環境

Windows8.1
Windows10
jdk-14.0.2

おきたこと

readmeのビルド手順には下記だけ書いてありました

./mvnw clean package assembly:single

mvnwというのはmavenのラッパーらしく、Windows環境でビルドを実行する際には.cmdのファイルを作ってくれているらしいのでそちらを指定して実行したのですが…。

mvnw.cmd clean package assembly:single

下記エラーが出現。

Error: JAVA_HOME not found in your environment.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

環境変数にJAVA_HOMEがないらしいです。

やったこと

そういえばJAVAいれてなかったなと思って(http://jdk.java.net/)からJDKを取ってきてDドライブにいれました。
環境変数の設定はコマンドプロンプト(cmd)からやったほうが楽そうだったのでコマンドプロンプトでやります。

これでJAVA_HOMEの現在の値を見られます。何も入っていなかったら設定しましょう。

set JAVA_HOME

環境変数のセットにはsetとsetxが使えるそうです。

setの方は再起動したらもとに戻る一時的な変更、setxの方は再起動すると有効化されて、消えない普通の変更らしい。
setは=でつなげて、setxは半角スペースでつなげます。

あと、jdkの場合はパスの部分にインストールしたフォルダを書きます。(binフォルダは含めない)

set JAVA_HOME=D:\xxx\jdk-14.0.2
setx JAVA_HOME D:\xxx\jdk-14.0.2

環境設定をいれたら無事mavenが動いてビルドできるようになりました。

おまけ:JDKの場合、bin含めるとエラーが出る

JREみたいにこういう形でbinを含めたパスを書くとエラーが出るので書かないようにしましょう。

setx JAVA_HOME D:\xxx\jdk-14.0.2\bin

のあと「./mvnw clean package assembly:single」を実行すると下記のエラーが出る。

Error: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "D:\xxx\jdk-14.0.2\bin"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

おわり。