我在安裝了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文件的快速提取物:
幫助都是歡迎的。