2010-03-29 58 views
3

腳本提供了here一個偉大的方式,如果螞蟻是用Java 6面向未來的Java版本檢查

<?xml version="1.0" encoding="UTF-8"?> 

<project name="project" default="default"> 

    <target name="default" depends="javaCheck" if="isJava6"> 
     <echo message="Hello, World!" /> 
    </target> 

    <target name="javaCheck"> 
     <echo message="ant.java.version=${ant.java.version}" /> 
     <condition property="isJava6"> 
      <equals arg1="${ant.java.version}" arg2="1.6" /> 
     </condition> 
    </target> 

</project> 

不過來檢查,我有充分的理由認爲,未來人拿着我的位置可能不是Java程序員,我想確保構建不因Java 7而失敗。是否有任何方法可以挑選字符串或以其他方式請求Java 6或更高版本

+0

什麼是你需要知道你的腳本中的JVM層次的原因? – 2010-03-29 05:30:51

+0

我試圖防範在Mac 10.5上的Java 5 javac。該javac不知道Java 6庫。 Ant中的任務沒有提供指定所需版本的方法,但缺少使用並給出了bin的確切路徑。 標籤只處理兼容性;它不會讓一箇舊的javaroot中的javac意識到其他一些javaroot中的jre庫。 – 2010-03-29 06:23:32

+0

底線:我需要編譯一個使用新Desktop類的程序,並且我希望腳本在Java不打斷時警告人們。這樣他們不會混淆關於未知符號的編譯器錯誤。 – 2010-03-29 06:24:46

回答

0

您可以使用ContainsRegEx任務在java版本字符串上進行正則表達式匹配。否則,很大程度上取決於您使用此版本檢查所守護的內容。例如,javac任務可以指定您爲其構建的類所針對的JVM版本。因此,如果您決定在您的示例中不使用條件方法,則可能取決於哪些特定任務支持它們如何使用不同的JVM版本。

1

當心,該ant.java.version返回與螞蟻建造,直到螞蟻1.6.5的JDK版本...