繁体   English   中英

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

[英]Why does ant think I have an old version of Java?

我正在尝试使用 ant 从源代码(在 RH Linux 上)构建 Groovy,但由于某种原因,它认为我的 Java 版本是 1.4,因此无法编译, 有问题的线似乎是

<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”。 有任何想法吗?

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

编辑:当你从命令行运行 java 时,“which java”会告诉你你得到了哪个 Java。 例如,如果这告诉您,您正在获取“/usr/lib/jvm/java-6-sun/bin/java”,您可以将“JAVA_HOME”设置为“/usr/lib/jvm/java-6 -太阳”

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

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

我会检查 PATH 环境变量。

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

$ java-版本

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM