2014-12-10 37 views
1

雖然我沒有安裝Java 1.5,但Ant仍在使用Java 1.5。我必須使用ant 1.6.5。這不是升級的選擇。使用錯誤的Java版本的Ant

診斷有有趣的輸出:

java -version 
java version "1.6.0_37" 

./apache-ant-1.6.5/bin/ant -v | grep -i java 
Detected Java version: 1.5 in: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

似乎有強制螞蟻在1.5兼容運行Java的配置。我無法在任何地方找到此配置。

任何想法是怎麼回事?

+0

您確定它確實在做與Java 1.5相關的任何事情,比如將java-build任務傳給-source 1.5 -target 1.5,或者它只是* misreporting *您安裝的Java版本?我懷疑後者。這個版本的ant可能已經夠老了,它根本不知道任何更新的java版本。 – 2014-12-10 23:06:08

回答

1

我係統中最古老的ant版本是1.7.0(我的組織也有需要使用過時版本的ant來構建的項目)。

如果我運行ant -v具有以下build.xml文件:

<?xml version="1.0"?> 
<project name="ant-test" default="test"> 
    <target name="test"> 
     <echo message="${java.version}" /> 
    </target> 
</project> 

則Ant 1.7.0報告:

檢測Java版本:1.6:C:\ Program Files文件\的Java \ jdk1.8.0_25 \ jre的

但後來,它顯示:

[迴音] 1.8.0_25

如果我用螞蟻1.8.4或1.9.3的螞蟻,我也已經安裝運行它,它會報告:

檢測Java版本:1.8在:C:\ Program Files \ Java \ jdk1.8.0_25 \ jre

正如所料。所以這只是一個老版本的ant的例子,它錯誤地報告了它檢測到的Java版本,因爲它不知道更新的版本。我不認爲這會對Java 1.6.0_37構建任何問題。

+0

謝謝,我認爲你是正確的,它不會影響編譯器版本。 $ {ant.java.version}的值是1.5,我們在一些地方使用它。 – 2014-12-10 23:56:10

+0

@ user4347754,如果您覺得它解決了您的問題,您可以將答案標記爲已接受。 – 2014-12-12 22:45:51