使用 Gradle 构建 - 提供的 javaHome 必须是有效目录

问题描述 投票:0回答:5

本来应该很简单的任务我却遇到了很多麻烦。我正在尝试在课程开始前使用 Gradle 为我的一门课程构建一个简单的 Java 项目(只是 Hello World)。我克隆了存储库,下载了所有相关软件,并在命令行上尝试了

gradle build
。我收到错误
Supplied javaHome must be a valid directory. You supplied: C:\Program Files\AdoptOpenJDK\jre-8.0.282.8-hotspot
。显示的这个文件是我已删除的先前版本。

我尝试重新安装所有内容,并且还检查了 JAVA_HOME 环境变量,该变量设置为

C:\Program Files\AdoptOpenJDK\jdk-15.0.2.7-hotspot\
。我还重新启动了终端并重新启动了我的计算机。如果有什么相关的话,我正在使用 Git Bash 作为我的 shell。关于如何更改提供的 javaHome 有什么建议吗?

以下是一些相关截图:

gradle build

的结果

java -version

的结果

JAVA_HOME环境变量

我的(非常粗略的)解决方案是复制现有的 jre15 文件夹并将其重命名为

jre-8.0.282.8-hotspot
。我现在可以构建并运行我的程序,但它看起来很粗略。

一年更新:我问我的教授什么时候开始上课,他说这个解决方案实际上相当不错,足以满足这个学期的需要。

java gradle
5个回答
19
投票

我在 GitHub Actions 上构建 Java 应用程序时遇到了类似的问题。当我从 Java 11 升级到 Java 16 后,我开始遇到与您相同的错误。

就我而言,结果证明这是一个缓存问题。我正在缓存两个目录:

  1. ~/.gradle
    (在 Windows 上,这应该类似于
    C:\Users\username\.gradle
  2. project/.gradle
    (这是我的应用程序项目本地的 gradle 目录)。

使缓存无效解决了我的问题。


9
投票

在卸载运行 Gradle deamon 的 Java 版本后,我遇到了类似的问题。停止守护程序为我解决了这个问题:

gradle --stop

(可能是Miguel解决方案的跨平台等价物)


2
投票

对我来说,我刚刚删除了文件夹中的 .gradle

C:\Users\username\.gradle
。 使用 Android Studio,依赖项会自动重新安装


1
投票

将 gradle(

gradle-wrapper.properties
) 版本从 Android Studio 更新到最新版本

enter image description here


0
投票

我在 2024 年使用 VS Code + Flutter 时仍然遇到这个问题。通过 Android Studio 清理 gradle/更改 JDK 并没有修复它。

要修复此问题,我必须通过点击

Java status menu
进入
Java: Ready
(底部栏)来重置 Java 缓存: Java status menu

然后选择

Clean Workspace Cache...
菜单: Clean Workspace Cache

© www.soinside.com 2019 - 2024. All rights reserved.