Maven使用JRE7而不是JDK?

20

Eclipse Juno Release
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文件中发布出来? - gregwhitaker
1
如果您在项目上使用命令行执行“mvn install”,是否会出现相同的错误? - gregwhitaker
不行。出现了完全不同的错误,指出缺少一些包。嗯,我会尝试解决它们,看看是否有助于修复Eclipse增强功能。谢谢你的提示!我对我认为是相同执行的不同结果感到惊讶。 - atripes
好的。命令 mvn clean process-classes 完成了它的工作。结果是“构建成功”。不幸的是,Eclipse Enhance 仍然会出现错误,提示缺少 tools.jar - atripes
我在下面编辑了我的答案。试一试那个建议,然后告诉我发生了什么。 - gregwhitaker
5个回答

25
你需要将你的JAVA_HOME环境变量设置为JDK目录。
编辑:
在Eclipse中的安装的JRE首选项窗口中删除JRE并选择JDK。还要确保你的项目使用该JRE库(右键单击资源管理器中Maven项目结构下的“JRE系统库”,将其设置为“执行环境”)。

我的JAVA_HOME环境变量(用户和系统)是C:\ Program Files \ Java \ jdk1.7.0_07,所以一切都应该设置好了。 - atripes
这可能与Win7 64位和32位有关吗? - atripes
1
成功!我已经修改了“JRE系统库”的构建路径为项目默认库。但这还不够。我忘记在我的Maven构建的“运行配置”中设置正确的JRE。这导致大约有一千个地方需要配置JRE。非常感谢! - atripes
4
下次提醒一下,如果你在“窗口/首选项/Java/已安装的JRE”设置中只留下JDK,你的运行配置文件应该默认为“项目设置”,这将是该JDK,因此您不必每次更改它。 - gregwhitaker
1
你可以将jre保留在计算机上,但没有必要将其配置到Eclipse中。 - gregwhitaker
显示剩余3条评论

8

您需要确认 Maven 的“运行配置…”与正确的 JRE 相连接。如果项目 JRE 正确,但运行配置 JRE 不正确,则会出现此错误。要解决这个问题,在 Maven Build 下选择 JRE 选项卡。


3
为了配置Maven构建使用正确的Java执行环境,您需要更改Maven使用的执行环境。
1. JRE位置
要设置JRE位置,请加载首选项窗口,在Window\Prefences(Windows)或Eclipse\Preferences(OSX)或Edit\Preferences(Linux)下打开。
展开Java/Installed JREs选项 选择所需的JDK,如果未配置,则添加一个。
2. 映射执行环境
要将任何Java版本映射到特定安装的JRE,请选择Java/Installed JREs/Execution environment菜单项
选择该版本的适当默认JRE安装。
3. 运行配置
如果您有特定的运行配置,可以更改/创建特定的运行配置并链接一个特定的执行环境仅针对该命令。
- 要执行此操作,请选择Run/Run Configurations - 选择或创建运行配置。 - 选择Execution Environment选项卡。 - 为此命令选择适当的执行环境。

1
Maven 2.0.9+支持工具链,允许您声明构建所需的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>

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接