2013-02-25 136 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