2013-02-25 75 views
2

我在安裝了Java jdk(和jre)1.6的Unix機器上通過Eclipse Juno生成了一個ant文件。 在eclipse以外的地方運行ant時,build.xml文件位於該機器上,一切都很順利。Ant未使用正確的java版本

現在,問題是當我嘗試在另一臺機器上運行ant時,其中安裝了jdk和jre 1.6。 這裏是我所得到的,其他的機器,這是運行RedHat 3(不能修改):

> ant -version 
Apache Ant version 1.5.2-23 compiled on November 12 2003 

> java -version 
java version "1.6.0_39" 
Java(TM) SE Runtime Environment (build 1.6.0_39-b04) 
Java HotSpot(TM) Client VM (build 20.14-b01, mixed mode, sharing) 

> javac -version 
javac 1.6.0_39 

> ls -l `which java` 
lrwxrwxrwx 1 root root 26 Feb 13 15:22 /usr/bin/java -> /usr/java/default/bin/java* 

> ls -l `which javac` 
lrwxrwxrwx 1 root root 27 Feb 13 15:22 /usr/bin/javac -> /usr/java/default/bin/javac* 

> ls -l /usr/java 
total 8 
lrwxrwxrwx 1 root root 16 Nov 7 14:19 default -> /usr/java/latest 
drwxr-xr-x 7 root root 4096 Feb 13 15:02 jdk1.6.0_39/ 
drwxr-xr-x 7 root root 4096 Nov 7 14:18 jre1.6.0_37/ 
lrwxrwxrwx 1 root root 21 Feb 13 15:03 latest -> /usr/java/jdk1.6.0_39 

> echo $JAVA_HOME 
/usr/java/jdk1.6.0_39/bin/java 

當我在build.xml文件中加入這一行,我得到如下結果

build.xml: 
<echo message="Java version: ${ant.java.version}"/> 

> ant 
    [echo] Java version: 1.4 

和編譯錯誤:

[javac] ...InputManager.java:11: error: Invalid method declaration, method name required. 
    [javac] Map<Double, List<MyObject>> loadFile(File pSelectedFile) 
    [javac]   ^
    [javac] ...InputManager.java:11: error: Class or interface declaration expected. 
    [javac] Map<Double, List<MyObject>> loadFile(File pSelectedFile) 
    [javac]   ^
    [javac] ...InputManager.java:33: error: Invalid character '@' in input. 
    [javac] @Override 
    [javac]   ^
... 

現在的問題是:是我的Java安裝不正確的? 我在做螞蟻做錯了什麼?

這裏的build.xml文件的快速提取物:

幫助都是歡迎的。

回答

0

你的螞蟻的版本是針對舊版本的Java(2003年)的編制。 Java 1.6的在2006年就出來了正如我已經發現了,你可以讓螞蟻上運行舊版本的喜歡這裏:http://www.coderanch.com/t/108814/tools/jdk-version-build-xml

...............

如果螞蟻已經編譯對1.5,那麼你可以修改構建 任務

<javac source="1.4" target="1.4" ...> ...................... 但而不是相反。 所以我猜你需要更新鮮的Ant版本。

http://ant.apache.org/faq.html#java-version

紅帽ES 3.0附帶安裝了螞蟻1.5.2。即使您的 PATH和ANT_HOME變量正確設置爲更高版本的螞蟻, ,您仍將被迫使用預安裝的版本。

使用Ant的更高版本,在這個操作系統,你可以做到以下幾點:

$ ant -version 
Apache Ant version 1.5.2-23 compiled on November 12 2003 
$ su - 
# rpm -e ant ant-libs 
# exit 
$ hash -r 
$ ant -version 
Apache Ant version 1.6.2 compiled on July 16 2004