[英]Unable to install Maven on Windows: “JAVA_HOME is set to an invalid directory”
[英]Windows 10 Gradle: JAVA_HOME is set to an invalid directory
I was trying to run ./gradlew bootRun
in both Git Bash and PowerShell , and got this error: 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 是實際目錄,而不是像 javac 路徑想要的 bin 文件夾。 我花了一段時間才解決這個問題
看起來您的 JAVA_HOME 變量解析為 JRE 安裝目錄。 但是當您談論 Gradle 時,您肯定是在嘗試構建/編譯代碼。
如果您安裝了 JDK,請將 JAVA_HOME 變量更改為指向它。 文件夾名稱通常應以“jdk”開頭。 否則,您必須安裝 Java 開發工具包。
您也可以嘗試在命令行上運行 gradle 之前手動導出變量( SET JAVA_HOME=<path to the jdk directory>
)
我發現自己遇到了同樣的問題,盡管我的 JAVA_HOME 設置為正確的 JDK 路徑。 但是,Windows 10 在路徑末尾附加了一個分號。 這樣 JAVA_HOME 變量可以在任何地方工作,但不適用於 Gradle。 我發布這個,因為它可能會節省我一直在尋找它的時間;)
在我的谷歌搜索中找到了我以前從未見過的解決方案。
在某個編輯器中打開您的 gradlew.bat。 在第 34-ish 行,您將看到:
: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 沒有將變量名連接到路徑中。
如果您沒有管理員權限,請覆蓋用戶環境變量中的 JAVA_HOME。 通過選擇 Java 主文件夾來避免拼寫錯誤。 您必須在 java 主頁的 bin(不包括 /bin)之前包含文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.