14

当我在项目上运行 maven 包时,我将 JAVA_HOME 变量设置为C:\Program Files\Java\jre6\它告诉我它无法解决依赖关系

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (default) on project roo: Execution default of goal o
rg.codehaus.mojo:aspectj-maven-plugin:1.0:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.0 or one of its dependencies
could not be resolved: Could not find artifact com.sun:tools:jar:1.4.2 at specified path C:\Program Files\Java\jre6/../lib/tools.jar ->
[Help 1]

所以它假设 JAVA_HOME 实际上比实际更深一层,我查看了 maven 本地存储库,发现 log4j 1.2.16 使用了这个依赖

我试图让 JAVA_HOME 看起来像C:\Program Files\Java\jre6\bin\,但后来 maven 无法运行,它告诉我我的 JAVA_HOME 路径错误

4

15 回答 15

16

You will need a Java JDK not just a JRE. You can get one at Oracle's Java Page

Edit: From the Maven Properties Guide:

${java.home} specifies the path to the current JRE_HOME environment use with relative paths to get for example:
<jvm>${java.home}../bin/java.exe</jvm>

And with a JDK for example in c:\jdk the maven ${java.home} is pointing to c:\jdk\jre

于 2011-03-19T02:15:04.897 回答
8

我还发现这对我有帮助。

...使用 Eclipse,您需要验证已安装的 JRE 是否正在使用 JDK 安装。

这意味着在配置选项中... Window / Preferences / Java / Installed JREs ...您应该指向JDK安装。

您需要更改 jdk 中 jre 的路径。对于 %Program Files%\Java\jdk1.6.0_25\jre

于 2012-02-15T14:02:07.673 回答
2

java.home 变量可以进一步从您的项目 pom.xml 派生。仔细检查您的 Maven 编译器插件参考。我在尝试构建时遇到了同样的问题,抱怨它找不到 javac。我的 java.home、JAVA_HOME 都设置正确。

结果对我来说是 FIX 是更正 pom.xml 我最终做了以下更改:

            <!-- Original Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>${default.java.version}</source>
                <target>${default.java.version}</target>
                <showDeprecation>false</showDeprecation>
                <executable>${default.java.home}/bin/javac</executable>
                <compilerVersion>${default.java.version}</compilerVersion>
                <fork>true</fork>
            </configuration>

            <!-- MODIFIED Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>

                <!-- SPECIFY A DISCRETE VERSION!! Do not let it derive it! -->
                <source>1.6</source>
                <target>1.6</target>

                <!--
                  <showDeprecation>false</showDeprecation>
                  <executable>${default.java.home}/bin/javac</executable>
                  <compilerVersion>${default.java.version}</compilerVersion>
                  <fork>true</fork>
               -->
            </configuration>
于 2011-12-19T16:00:19.367 回答
1

这个问题也出现在 Intellij IDEA (IDEA 11.x ~ Windows 7 ~ Java 7)。指定 systempath 属性是在引用 IDEA jre ...

一个稳定的解决方案是在 $HOME/.m2/settings.xml 下创建一个本地 maven 配置文件

<profiles>
  <profile>
    <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
          <jdk>NUMERIC_VERSION</jdk>
        </activation>
        <properties>
          <java.home>                   
            <!-- ABSOLUTE_PATH_HERE -->
          </java.home> 
        </properties>
  </profile>
</profiles>
于 2012-12-25T01:09:30.473 回答
1

只是为了在有关更改窗口首选项的答案中添加更多信息。我将JRE位置设置为C:\Program Files\Java\jre7因为这似乎是显而易见的选择。

然而,这是一个失败。所指出的正确答案是C:\Program Files\Java\jdk1.7.0_10\jre。我指出这一点是因为它很容易犯错误。

于 2013-05-02T16:17:24.247 回答
1

今天有同样的问题。结果我特别需要在路径中使用“程序文件”,尽管这个 Windows 安装(以及文件夹的名称)是德语的。

这种事情也不是第一次发生了。

因此,如果您确定您的路径是正确的,请尝试“程序文件”而不是您的本地化替代方案。为我工作。

于 2013-09-30T09:07:19.020 回答
0

我遇到了类似的问题,以下解决了这个问题:

JAVA_HOME = C:\Program Files\java\jdk
M2_HOME= C:\Program Files\apache-maven

inside path = ....%JAVA_HOME%\bin;%M2_HOME%\bin;

这解决了这个问题。

于 2013-10-04T05:59:22.673 回答
0

我有一个类似的问题,答案很简单;

maven 找不到 JAVA_HOME 变量,直到我意识到我将 Java 路径写入我的路径变量。所以我的“错误:在你的环境中找不到 JAVA_HOME...”的答案是创建一个名为 JAVA_HOME 的新变量。也许这对傻瓜来说是失败的,但我花了一个小时才意识到......

于 2014-03-21T09:48:10.310 回答
0

配置 JAVA 环境变量的正确方法是:-

  1. 将 JAVA_HOME 设置为您的“jdk 文件夹”\jre
  2. 将“jdk 文件夹”\bin 添加到您的 PATH 用户环境变量

JAVA_HOME 是“java.exe”的位置,需要来自 JRE\bin 文件夹。PATH 是查找需要来自 JDK\bin 文件夹的 javac.exe。

这也确保了 JDK 和 JRE 兼容

于 2013-07-31T06:17:10.537 回答
0

编写、编译和打包java程序需要一个JDK,因为必要的工具只随JDK(Java Development Kit)一起分发。JRE(Java Runtime Environment)只需要运行一个java程序。

于 2011-03-19T09:49:23.590 回答
0

在不弄乱 JAVA_HOME 环境变量的情况下,这就是我能够修复它的方法。

安装 1.6.x jdk。

在已安装 JRE 下的 Eclipse/Preferences 中,为 JDK 添加一个条目并将其设为默认值(将位置设置为 JDK 文件夹,例如 C:\Program Files\Java\jdk1.6.0_34

编辑属性并将 JDK_HOME/lib/tools.jar 添加到系统库列表中。

或者,假设安装了 jdk,您可以将 JDK/lib/tools.jar 添加到现有默认 JRE 的系统库列表中

于 2012-11-27T15:25:24.733 回答
0

要运行 Maven - 您需要配置环境变量 JAVA_HOME 以指向 JDK

例如 JAVA_HOME=C:\Program Files\Java\jdk1.7.0_25

您还需要 PATH 环境变量中包含的 C:\Program Files\Java\jdk1.7.0_25\bin。

问候, 迪潘

于 2013-08-31T01:38:12.633 回答
0

我能够在键入时在命令提示符中看到适当的响应,java -version但在键入时出现此错误mvn -version

就我而言,这是一个愚蠢的错误。这些天JAVA_HOME环境变量一直指向该 文件夹,这导致了问题。..\jdk\binJAVA_HOME变量值中删除 bin 后,我可以使用 Maven。

注意:系统变量路径应该包含指向 JDK 的 bin 文件夹的值。

问候, Balaji.K

于 2013-07-08T07:31:20.367 回答
0

在我的命令行 Maven 项目(与 Eclipse 中的 Maven 版本不同)进行 Java 自动更新(在 Windows 7 上)之后,我遇到了这个问题。JRE 自动更新删除了我的系统 JAVA_HOME 环境变量指向的 JDK 下的 jre 文件夹。由于没有找到 jre,maven 默认使用新安装的 JRE(仍然没有弄清楚如何)。我恢复了我的 JDK 目录下的 jre 文件夹并删除了对 C:\ProgramData\Oracle\Java\javapath 的引用,该引用已添加到系统 Path 变量的开头,并且 maven 构建恢复正常。

于 2016-02-09T16:25:11.933 回答
0

您还应该确保 Java 库位于项目的类路径中。导航到项目的属性-> java 构建路径-> 库选项卡。检查是否列出了 jdk 库。如果没有添加它。这也可能是导致此类错误的原因。

于 2015-12-16T12:26:12.087 回答