【问题标题】:Java version mismatch in MavenMaven 中的 Java 版本不匹配
【发布时间】:2012-06-22 04:28:05
【问题描述】:

我在尝试使用 Maven 构建我的应用程序时遇到了一个奇怪的问题,在命令行上。 (我在 SO 上看到的其他问题是指在 Eclipse 或其他 IDE 中构建)

当我尝试构建时,maven 抱怨它在 tools.jar 中找不到 Javac。查看给定的位置,很明显 Maven 正在查看 JRE 目录,但是,我似乎无法让 Maven 为我的 JDK 指向正确的 Java_home - 关于如何完成此操作的任何想法?

环境概览

JAVA_HOME=C:\jdk1.6.0_27
Path=C:\jdk1.6.0_27\bin;...... (showing the jdk is the first thing on the path)

D:\> javac -version
javac 1.6.0_27  <-- This is correct

D:\>java -version
java version "1.6.0_31"  <-- wtf? 

D:\>mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800)
Java version: 1.6.0_31                       <--- This is the problem - Where
Java home: C:\Program Files (x86)\Java\jre6  <--- does Maven get this from?

欢迎您对此发表任何看法。

【问题讨论】:

  • 在 cmd 模式下仅使用 JDK 和 MAVEN 路径覆盖 PATH 变量,然后重试。确实这是一个奇怪的问题。
  • 好主意,但我仍然从 Maven 和 Java 版本中得到相同的响应。

标签: java maven build


【解决方案1】:

尝试将您的 maven 目录(例如 D:\maven-2.2.1\conf)中的 toolchains.xml 配置为您的 java 版本

<toolchains>
<toolchain>
    <type>jdk</type>
    <provides>
        <version>1.5</version> <!--This should be same as is configured via the toolchains plugin -->
        <vendor>ibm</vendor> <!--This should be same as is configured via the toolchains plugin -->
    </provides>
    <configuration>
        <jdkHome>C:\Program Files\Java\jdk1.5.0</jdkHome>
    </configuration>
</toolchain>
</toolchains>

【讨论】:

  • 这就是我一直在寻找的答案!谢谢! :)
【解决方案2】:

您是否查看过您的 build-local.properties 或 build.properties?可能仍然指向那里的JRE。 这必须纯粹是路径中某处的构建路径问题。

很抱歉将此列为我似乎无法添加 cmets 的答案。

【讨论】:

  • 我没有 build.properties,但是我确实在 ~/.m2 中检查了我的 settings.xml,并且其中没有列出任何关于 JRE/JDK 的内容:o(
  • link 有帮助吗
  • 我在最初的研究中看到了这个帖子,但它与在 Eclipse 中工作有关(仅供参考,我的 eclipse 已经指向 C:\jdk1.6.0_27)
猜你喜欢
  • 2021-09-21
  • 2018-12-07
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
相关资源
最近更新 更多