为什么ant认为我有旧版本的Java?

时间:2009-03-20 12:51:55

标签: java ant groovy

我正在尝试使用ant从源代码(在RH Linux上)构建Groovy,但出于某种原因,它认为我的Java版本是1.4,而不是1.6,因此它不会编译。违规行似乎是

<condition property="groovy.build.vm5">
    <not>
        <contains string="${ant.java.version}" substring="1.4"/>
    </not>
</condition>
在build.xml中

当我在命令行输入javac -version时,它会显示“javac 1.6.0_11”。有什么想法吗?

3 个答案:

答案 0 :(得分:8)

检查环境变量JDK_HOME和JAVA_HOME的值。

编辑:“哪个java”会告诉你从命令行运行java时你得到的Java。例如,如果这告诉您“/ usr / lib / jvm / java-6-sun / bin / java”,则可以将“JAVA_HOME”设置为“/ usr / lib / jvm / java-6” -Sun“

答案 1 :(得分:3)

Jon Bright的答案暗示了一个好的方向:可能你安装的ant使用的是另一个java版本而不是你通过'java -version'访问的版本。这受环境变量JDK_HOME和JAVA_HOME的影响。

编辑:如果这些变量不存在,那么ant应该从名为ant的安装中找到Java。但是如果你设置这些变量,ant就会选择这些变量。因此,将此变量设置为JDK1.6的安装应该值得一试。在Linux上,您的Java可以位于/ usr / lib / jvm。

的子目录中

答案 2 :(得分:0)

我会检查PATH环境变量。

当你在一个干净的shell(最近开始)执行时,你会得到什么:

$ java -version

Ant可能认为您正在尝试使用OpenJDK的JVM和编译器(我认为它随RH一起安装)。尝试卸载它。