2012-06-20 176 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