gradle Windows 10升级版:JAVA_HOME设置为无效目录

cedebl8k  于 2022-11-14  发布在  Windows
关注(0)|答案(7)|浏览(102)

我尝试在Git BashPowerShell中运行./gradlew bootRun,并得到此错误: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,没有问题。环境设置应该没有问题。

wfveoks0

wfveoks01#

除了Ernest的答案之外,它需要的JAVA_HOME是实际的目录,而不是path为javac提供的bin文件夹。

2ul0zpep

2ul0zpep2#

看起来您的JAVA_HOME变量解析为JRE安装目录。但是,当您谈论Gradle时,您肯定在尝试构建/编译代码。
如果您已安装JDK,请变更JAVA_HOME变数以指向它。文件夹名称通常应以“jdk”开头。否则,您必须安装Java Development Kit。
您也可以尝试在命令行上运行gradle之前手动导出变量(SET JAVA_HOME=<path to the jdk directory>

3vpjnl9f

3vpjnl9f3#

请将JAVA_HOME变量位置设置为JDK路径,而不是JRE路径。
如果设置正确,请在编辑模式下检查环境变量。在我的示例中,我发现JAVA_HOME环境变量末尾附加了一个分号。
要检查:
1.打开环境变量列表。
1.选择变量并单击编辑。
1.删除分号并保存。
关闭设置并使用echo %JAVA_HOME%检查cmd中的路径,然后运行gradle -v
它运行得很完美。

注意:由于看不到分号,请单击“编辑”按钮检查变量值. Windows会添加分号,以便同一个变量可以用作多个位置得路径.

添加图片以供参考:

vdzxcuhz

vdzxcuhz4#

我发现自己也遇到了同样的问题,尽管我的JAVA_HOME被设置为正确的JDK路径。然而,Windows 10在路径的末尾附加了一个分号。这样,JAVA_HOME变量在任何地方都可以使用,但在Gradle中无法使用。我之所以发布这个,是因为它可能会让其他人节省我寻找它的时间;)

nwnhqdif

nwnhqdif5#

找到了一个我在谷歌上从未见过的解决方案。
在某个编辑器中打开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路径的回显。
为了解决这个问题,我改变了
set JAVA_EXE=%JAVA_HOME%\bin\java.exe

set JAVA_EXE=C:\...\Java\jdk1.8.0_261\bin\java.exe
值现在是硬编码的,true,但它起作用了。我不知道为什么gradle不把变量名串接到路径中。

jobtbby3

jobtbby36#

如果您没有管理员权限,请覆盖用户环境变量中的JAVA_HOME。通过选择Java主目录文件夹来避免输入错误。您必须在Java主目录的bin之前包括文件夹(不要包括/bin)。

bvpmtnay

bvpmtnay7#

如果以上都不起作用,请在编辑器中打开gradle.bat文件,并确保它是正确的,在我的例子中,gradle是问题所在

相关问题