Windows 10 Gradle: JAVA_HOME 设置为无效目录
Windows 10 Gradle: JAVA_HOME is set to an invalid directory
我试图在 Git Bash 和 PowerShell[= 中 运行 ./gradlew bootRun
28=],并得到这个错误:ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jre1.8.0_121
gradlew 文件位于从 git 克隆的项目目录中。这是来自Spring官方指南的练习项目。还有一个包含这些行的 gradle.bat 文件:
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
我也试过 运行 Eclipse EE,没问题。环境设置应该没问题。
看起来您的 JAVA_HOME 变量解析为 JRE 安装目录。但是当你谈论 Gradle 时,你肯定会尝试 build/compile 编码。
如果您安装了 JDK,请更改 JAVA_HOME 变量以指向它。文件夹名称通常应以 "jdk" 开头。否则,您必须安装 Java 开发工具包。
您也可以尝试在命令行 运行 gradle 之前手动导出变量 (SET JAVA_HOME=<path to the jdk directory>
)
除了欧内斯特的回答,JAVA_HOME它想要的是实际目录,而不是像javac想要的路径那样的bin文件夹。我花了一些时间才弄明白
我发现自己遇到了同样的问题,尽管我的 JAVA_HOME 设置为正确的 JDK 路径。
但是 Windows10 在路径的末尾附加了一个分号。
这样 JAVA_HOME 变量可以在任何地方使用,但不适用于 Gradle。
我发布这个,因为它可能会节省其他人我一直在寻找它的时间 ;)
在我的谷歌搜索中找到了一个我以前从未见过的解决方案。
在某些编辑器中打开您的 gradlew.bat。在第 34 行你会看到这个:
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
将此行添加到错误消息中:echo %JAVA_EXE%
看起来像这样
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo %JAVA_EXE%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
然后 运行 你的 gradlew.bat 文件。
错误现在应该再次出现,但添加了 JAVA_EXE 路径的回显。在我的例子中,它是回显 \bin\java.exe
而不是完整路径 C:\...\Java\jre1.8.0_251\bin\java.exe
为了解决这个问题,我进行了更改
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
至
set JAVA_EXE=C:\...\Java\jdk1.8.0_261\bin\java.exe
该值现在是硬编码的,是的,但它确实有效。不知道为什么gradle不把变量名concat到路径里
请将 JAVA_HOME 变量位置设置为 JDK 而不是 JRE 的路径。
如果设置正确,请在编辑模式下检查环境变量。
就我而言,我发现在末尾的 JAVA_HOME 环境变量中附加了一个分号。
检查:
- 打开环境变量列表。
- Select 变量并单击编辑。
- 删除分号并保存。
关闭设置并使用 echo %JAVA_HOME% 和 运行 gradle 检查 cmd 中的路径-v.
运行 完美。
注意:通过单击“编辑”按钮检查变量值,因为我们看不到分号。 Windows 添加一个分号,以便同一个变量可以用作多个位置的路径。
添加图片以供参考:
我试图在 Git Bash 和 PowerShell[= 中 运行 ./gradlew bootRun
28=],并得到这个错误:ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jre1.8.0_121
gradlew 文件位于从 git 克隆的项目目录中。这是来自Spring官方指南的练习项目。还有一个包含这些行的 gradle.bat 文件:
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
我也试过 运行 Eclipse EE,没问题。环境设置应该没问题。
看起来您的 JAVA_HOME 变量解析为 JRE 安装目录。但是当你谈论 Gradle 时,你肯定会尝试 build/compile 编码。
如果您安装了 JDK,请更改 JAVA_HOME 变量以指向它。文件夹名称通常应以 "jdk" 开头。否则,您必须安装 Java 开发工具包。
您也可以尝试在命令行 运行 gradle 之前手动导出变量 (SET JAVA_HOME=<path to the jdk directory>
)
除了欧内斯特的回答,JAVA_HOME它想要的是实际目录,而不是像javac想要的路径那样的bin文件夹。我花了一些时间才弄明白
我发现自己遇到了同样的问题,尽管我的 JAVA_HOME 设置为正确的 JDK 路径。 但是 Windows10 在路径的末尾附加了一个分号。 这样 JAVA_HOME 变量可以在任何地方使用,但不适用于 Gradle。 我发布这个,因为它可能会节省其他人我一直在寻找它的时间 ;)
在我的谷歌搜索中找到了一个我以前从未见过的解决方案。
在某些编辑器中打开您的 gradlew.bat。在第 34 行你会看到这个:
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
将此行添加到错误消息中:echo %JAVA_EXE%
看起来像这样
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo %JAVA_EXE%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
然后 运行 你的 gradlew.bat 文件。
错误现在应该再次出现,但添加了 JAVA_EXE 路径的回显。在我的例子中,它是回显 \bin\java.exe
而不是完整路径 C:\...\Java\jre1.8.0_251\bin\java.exe
为了解决这个问题,我进行了更改
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
至
set JAVA_EXE=C:\...\Java\jdk1.8.0_261\bin\java.exe
该值现在是硬编码的,是的,但它确实有效。不知道为什么gradle不把变量名concat到路径里
请将 JAVA_HOME 变量位置设置为 JDK 而不是 JRE 的路径。
如果设置正确,请在编辑模式下检查环境变量。 就我而言,我发现在末尾的 JAVA_HOME 环境变量中附加了一个分号。
检查:
- 打开环境变量列表。
- Select 变量并单击编辑。
- 删除分号并保存。
关闭设置并使用 echo %JAVA_HOME% 和 运行 gradle 检查 cmd 中的路径-v.
运行 完美。
注意:通过单击“编辑”按钮检查变量值,因为我们看不到分号。 Windows 添加一个分号,以便同一个变量可以用作多个位置的路径。
添加图片以供参考: