【问题标题】:Maven uses JRE7 instead of JDK?Maven 使用 JRE7 而不是 JDK?
【发布时间】:2012-11-06 21:39:34
【问题描述】:

Eclipse Juno 发布 Window / Preferences / Java / Installed Jres 显示两个已安装的 Jres。 jdk1.7.0_07jre7

尝试使用 maven 进行 cleanprocess-classes 时出现以下错误:

Failed to execute goal org.apache.maven.plugins:maven-compiler- 
plugin:2.4:compile (default-compile) on project reputation: Fatal 
error compiling: tools.jar not found: C:\Program 
Files\Java\jre7\..\lib\tools.jar

出于绝望,我已经将 tools.jar 添加为外部 jar,但它没有帮助。为什么maven要尝试使用另一个JRE

编辑:

编译器插件摘自pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

【问题讨论】:

  • 你能从你的 pom 中发布你的编译器插件定义吗?
  • 如果您从项目的命令行执行 mvn install 是否会出现同样的错误?
  • 不。出现了完全不同的错误,指出缺少某些包。嗯,我会尝试解决它们,看看它是否有助于修复 Eclipse 增强。谢谢你的提示!我对我认为相同的执行结果的不同结果感到惊讶。
  • 好的。命令mvn clean process-classes 完成了它的工作。结果是Build Success。不幸的是,eclipse增强仍然给出了tools.jar丢失的错误。
  • 我在下面编辑了我的答案。试试这个建议,让我知道会发生什么。

标签: eclipse maven java


【解决方案1】:

您需要将 JAVA_HOME 环境变量设置为 JDK 目录。

编辑:

在 Eclipse 的已安装 JRE 首选项窗口中,删除 JRE 并选择 JDK。还要确保您的项目设置为使用该 JRE 库(在资源管理器中右键单击 maven 项目结构下的“JRE 系统库”并将其设置为“执行环境”)

【讨论】:

  • 我的 JAVA_HOME 环境变量(用于用户和系统)是C:\Program Files\Java\jdk1.7.0_07,所以应该全部设置好。
  • 会不会是win7 64位和32位的问题?
  • 成功!我将JRE System Library 的构建路径更改为项目默认库。那并没有削减它。我忘记做的是在我的 maven 构建的Run configurations 中设置正确的 JRE。加起来估计有一千个地方需要配置 JRE。非常感谢!
  • 下次仅供参考。如果您在“Window / Preferences / Java / Installed Jres”设置中只保留 JDK,则您的运行配置文件应默认为“Project Settings”,即 JDK,因此您无需每次都更改它。
  • 您可以将 jre 留在您的机器上,但实际上并没有必要将它放在您的 eclipse 配置中。
【解决方案2】:

您应该验证 Maven“运行配置...”是否连接到正确的 JRE。如果项目 JRE 正确但运行配置 JRE 不正确,您将收到此错误。要修复,请转到 Maven Build 下,选择 JRE 选项卡。

【讨论】:

    【解决方案3】:

    要配置 maven 构建以使用正确的 java 执行环境,您需要更改 Maven 使用的执行环境。

    1. JRE 地点

    要设置 JRE 位置,请在 Window\Preferences (Windows) 或 Eclipse\Preferences(OSX) 或 Edit\Preferences (Linux) 下加载首选项窗口。

    扩展 Java/Installed JREs 选项 选择选择的 JDK,如果未配置,则添加一个。

    2。地图执行环境

    要将任何 Java 版本映射到特定安装的 JRE,请选择 Java/Installed JREs/Execution environment 菜单项

    为该版本选择适当的默认 JRE 安装。

    3.运行配置

    如果您有特定的运行配置,您可以更改/创建特定的运行配置并将特定的执行环境链接到该命令。

    • 为此选择运行/运行配置
    • 选择或创建运行配置。
    • 选择执行环境选项卡。
    • 为此命令选择适当的执行环境。

    【讨论】:

      【解决方案4】:

      Maven 2.0.9+ 支持toolchains,允许您声明构建所需的 JDK 版本。

      摘自相关 Maven 小指南:

      <plugins>
        ...
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-toolchains-plugin</artifactId>
          <version>1.1</version>
          <executions>
            <execution>
              <goals>
                <goal>toolchain</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <toolchains>
              <jdk>
                <version>1.5</version>
                <vendor>sun</vendor>
              </jdk>
            </toolchains>
          </configuration>
        </plugin>
        ...
      </plugins>
      

      【讨论】:

        【解决方案5】:

        在您安装的 JRE 首选项窗口中 “转到子菜单执行环境将此JDK标记为兼容”来自 How to force Eclipse m2e plugin to use jdk for a project

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-04-19
          • 1970-01-01
          • 2014-12-23
          • 1970-01-01
          • 1970-01-01
          • 2020-04-30
          • 2010-09-08
          相关资源
          最近更新 更多