【问题标题】:Building with Gradle - Supplied javaHome must be a valid directory使用 Gradle 构建 - 提供的 javaHome 必须是有效目录
【发布时间】:2021-07-31 11:49:55
【问题描述】:

对于本应轻松的任务,我遇到了很多麻烦。我正在尝试在课程开始之前使用 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。显示的这个文件是我删除的旧版本。

我尝试重新安装所有内容,还检查了设置为C:\Program Files\AdoptOpenJDK\jdk-15.0.2.7-hotspot\ 的 JAVA_HOME 环境变量。我还重新启动了终端并重新启动了我的计算机。我正在使用 Git Bash 作为我的外壳,如果这有什么相关的话。有关如何更改提供的 javaHome 的任何建议?

以下是一些相关截图:

Result of gradle build

Result of java -version

JAVA_HOME environment variable

我的(非常粗略的)解决方案是复制我拥有的现有 jre15 文件夹并将其重命名为 jre-8.0.282.8-hotspot。我现在可以构建和运行我的程序,但它看起来很简陋。

【问题讨论】:

  • 在 Ubuntu 上,我搞砸了几个并行安装(一个 Stable,一个最近的 Canary 和一个较旧的)。没问题。直到我删除了旧的 Canary 版本,就是这样。我开始遇到完全相同的问题。我也尝试了所有方法,但到目前为止我对如何克服这个问题一无所知。如果我能做到,我会在这里写下我的发现作为评论,因为它可能是你在 Windows 上的不同解决方案。

标签: java gradle


【解决方案1】:

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

在我的情况下,它原来是一个缓存问题。我正在缓存两个目录:

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

使缓存无效为我解决了这个问题。

【讨论】:

  • 在 CircleCI 中遇到了类似的问题。缓存失效有效。
【解决方案2】:

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

gradle --stop

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

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 2015-06-04
    • 2014-05-10
    • 1970-01-01
    • 2015-03-17
    • 2014-02-03
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    相关资源
    最近更新 更多