han*_*oir 2 java spring gradle git-bash
我试图同时./gradlew bootRun在Git Bash和PowerShell中运行,并收到此错误: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
Run Code Online (Sandbox Code Playgroud)
我还尝试运行Eclipse EE,这没有问题。环境设置应该没有问题。
小智 8
请将 JAVA_HOME 变量位置设置为 JDK 而不是 JRE 的路径。
如果设置正确,请在编辑模式下检查环境变量。就我而言,我发现 JAVA_HOME 环境变量末尾附加了一个分号。
去检查:
关闭设置并使用echo %JAVA_HOME%检查 cmd 中的路径,然后运行gradle -v。
它运行得很完美。
笔记:通过单击“编辑”按钮检查变量值,因为我们看不到分号。Windows 添加了分号,以便同一个变量可以用作多个位置的路径。
在谷歌搜索中找到了我以前从未见过的解决方案。
在某个编辑器中打开 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.
Run Code Online (Sandbox Code Playgroud)
将此行添加到错误消息中: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.
Run Code Online (Sandbox Code Playgroud)
然后运行 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 不将变量名称连接到路径中。
看起来您的 JAVA_HOME 变量解析为 JRE 安装目录。但是当您谈论 Gradle 时,您肯定是在尝试构建/编译代码。
如果您安装了 JDK,请将 JAVA_HOME 变量更改为指向它。文件夹名称通常应以“jdk”开头。否则,您必须安装 Java 开发工具包。
您也可以尝试在命令行 ( SET JAVA_HOME=<path to the jdk directory>)上运行 gradle 之前手动导出变量
| 归档时间: |
|
| 查看次数: |
6040 次 |
| 最近记录: |