2012-06-20 84 views
1

当我试图在命令行上使用Maven构建我的应用程序时,出现了一个奇怪的问题,。 (其他我在SO上看到的问题都指的是在Eclipse或其他IDE中构建)Maven中的Java版本不匹配

当我尝试构建时,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? 

任何你能阐明这个光将是最欢迎的。

+0

覆盖,只有JDK和Maven路径在CMD模式PATH变量然后再试一次。确实是一个奇怪的问题。 –

+0

好主意,但我仍然得到了来自Maven和Java -version的相同响应。 – Crollster

回答

1

试着在你的Maven目录配置toolchains.xml(如d:\行家-2.2.1 \ CONF)到您的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> 
+0

这是我正在寻找的答案!谢谢!:) – Crollster

0

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

对不起,这是一个答案,我似乎无法添加评论。

+0

我没有build.properties,但是我在〜/ .m2里检查了我的settings.xml文件,并且没有列出有关JRE/JDK的内容:o( – Crollster

+0

[link](http://stackoverflow.com/questions/2222560/build-failed-question-maven-jre-or-jdk-problem)在这方面有帮助 –

+0

我在最初的研究中看到了这篇文章,但它涉及到在Eclipse中工作(仅供参考,我的eclipse已经指向C:\ jdk1.6.0_27) – Crollster