【问题标题】:Maven Refuses Java Home DirectoryMaven 拒绝 Java 主目录
【发布时间】:2018-04-11 15:46:24
【问题描述】:

我按照说明通过/etc/mavenrc 文件将 Maven 指向适当的 JDK,详细信息如下: How to change maven java home

当我尝试运行 maven 时,它失败了,理由是 Java 主目录定义不正确,因为它是一个目录。

mvn --version /etc/mavenrc: line 1: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home: 是一个目录 JAVA_HOME 环境变量未正确定义 运行这个程序需要这个环境变量 注意:JAVA_HOME 应该指向 JDK 而不是 JRE

我的理解是 Java_Home 应该是一个目录。为什么拒绝使用合适的目录?

【问题讨论】:

  • 我认为错误信息是明确的。这个目录/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 是否包含一个名为bin 的文件夹,并且里面有JDK 工具,比如javacjavap
  • 确实如此。一切都在那里。我试过指向 /bin 目录,我得到了同样的错误。

标签: java macos maven


【解决方案1】:

在 Mac 上,$HOME/.mavenrc 文件应该包含一个 JAVA_HOME 声明,就像在 shell 脚本中一样。

ravn$ cat ~/.mavenrc 
JAVA_HOME=/Users/ravn/Downloads/zulu7.22.0.3-jdk7.0.171-macosx_x64
ravn$ 

这是一个很好的功能,但没有很好的文档记录。

【讨论】:

  • 这解决了我的问题。 .mavenrv 文件指向一个不存在的 JDK。将其指向正确的目录即可解决问题。
  • 我现在才看到您正在修改/etc/mavenrc 这是一个全局文件。对于多用户系统,这不是一个好主意,原因有很多。我建议改用~/.mavenrc
【解决方案2】:

我遇到了同样的问题,并且已经尝试解决了一个小时。我有 JAVA_HOME 使用以下行指向了正确的 jdk 位置,但仍然有这个问题。

export JAVA_HOME=$(/usr/libexec/java_home)

我最终的解决方法是将上面的同一行粘贴到.mavenrc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    相关资源
    最近更新 更多