我正在尝试使用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”。有什么想法吗?
答案 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一起安装)。尝试卸载它。