50

我在我的项目目录中运行了这个命令来构建和打包它:

mvn clean javadoc:jar package

我的JAVA_HOME变量设置正确。显然:

$ which java
/usr/bin/java
$ sudo ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 Dec 18 23:42 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

$ which javadoc
/usr/bin/javadoc

有谁知道为什么 mvn 仍然抱怨?

Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8:jar (default-cli) on project foo_bar: MavenReportException: Error while creating archive: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set. -> [Help 1]
4

9 回答 9

58

正确which java的证据还不够,因为无论如何/usr/bin/都可能存在。PATH查看

$ echo $JAVA_HOME

为证据。或运行

$ JAVA_HOME=/path/to/your/java/home mvn clean javadoc:jar package

在 OS X 上,您可以设置您的JAVA_HOMEvia:

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

在我的机器上指向

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
于 2012-12-19T21:38:30.733 回答
44

你可以让它使用 java.home 系统属性而不是 JAVA_HOME 环境变量:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.1</version>
    <configuration>
        <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
    </configuration>
</plugin>

想法来源:https ://medium.com/@kankvish/fixing-issue-the-environment-variable-java-home-is-not-correctly-set-b5f0b66a84d0

于 2019-01-23T09:05:38.253 回答
13

您可以在 Eclipse 中将 JAVA_HOME 添加为环境变量。

转到您的 Maven 构建-> 添加以下内容。

点击新建->

名称:JAVA_HOME

价值:您的路径。

在此处输入图像描述

这对我有用!

于 2016-04-18T05:09:13.413 回答
7

虽然很多答案都在谈论 OS X,但对于 Debian 或类似 Debian 的系统(例如 Ubuntu),我决定滥用“替代”系统:

export JAVA_HOME=$(update-alternatives --query javadoc | grep Value: | head -n1 | sed 's/Value: //' | sed 's@bin/javadoc$@@')

用 更干净地重写它awk,或者使用更正确的方式来访问“替代”数据库中的值,留给读者作为练习。

或者,鉴于使用“替代”系统的目的是维护符号链接,例如/usr/bin/javadoc在这种情况下,我们可以只查询符号链接指向的路径:

export JAVA_HOME=$(realpath /usr/bin/javadoc | sed 's@bin/javadoc$@@')

虽然这不是唯一可能的“Java 主目录”(您可能安装了许多 JDK),但鉴于我只关心mvn向前推进构建,并且错误涉及 Javadoc,我选择将此目录称为包含javadoc二进制文件的目录.


除了 JRE,别忘了安装 JDK。例如,我需要的 JDK 是openjdk-11-jdk为了补充openjdk-11-jre我之前安装的 JRE。


在上面之后,JAVA_HOMEenvvar 在我的系统上有这个值:/usr/lib/jvm/java-11-openjdk-amd64/

于 2020-05-09T23:06:49.710 回答
5

花了 2-3 个小时后,我觉得通过命令行打开 Eclipse 看起来是最简单的解决方案。按照以下步骤,

cd <Folder_where_Eclipse.app> open Eclipse.app

现在你的 Eclipse 可以找到终端环境变量。

于 2015-12-29T05:22:21.067 回答
4

有 2 个选项可以解决此问题。以下是步骤:

  1. 确保将 JAVA_HOME 配置为环境变量。

  2. 选项 1:javadocExecutable添加到属性中。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>${project.build.sourceEncoding
        </project.reporting.outputEncoding>
        <java.version>11</java.version>
        <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
    </properties>
    
  3. 选项 2:javadocExecutable添加到构建部分,如下所示。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
        <executions>
            <execution>
                <id>attach-javadocs</id>
                <goals>
                    <goal>jar</goal>
                </goals>
                <configuration>
                    <additionalparam>-Xdoclint:none</additionalparam>
                </configuration>
            </execution>
        </executions>
        <configuration>
            <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
            <excludePackageNames>com.vu.poc.test.objects</excludePackageNames>
            <overview />
        </configuration>
    </plugin>
    
于 2020-07-23T16:50:44.870 回答
1

将 maven-javadoc-plugin 插件升级到最新版本(3.3.0 或更高版本)。

于 2021-08-11T12:39:58.977 回答
0

他们通过将“export JAVA_HOME”添加到“bin/mvn”shell 脚本中为 maven 3.1 中的 OSX 修复了此问题,从而无需自己在外部设置 JAVA_HOME 来查找 javadoc。

于 2014-01-24T15:10:56.350 回答
0

一旦我切换到使用 sdkman 并删除了 Ubuntu 的 java 包,我就开始面临这个问题。其他一切正常,但使用 IntelliJ IDEA 捆绑的 maven 时 javadoc 插件失败。幸运的是,我们可以在每个项目级别设置环境变量

构建、执行、部署 > 构建工具 > Maven > Runner

环境变量:文本框中,添加

JAVA_HOME=/home/user/.sdkman/candidates/java/11.0.12-open/

显示 IntelliJ IDEA Maven Runner 设置的屏幕截图

于 2021-11-08T18:26:17.787 回答