,即使我没有安装 Java 1.5。我必须使用蚂蚁 1.6.5。升级不是选择。
诊断有有趣的输出:
java -version
java version "1.6.0_37"
./apache-ant-1.6.5/bin/ant -v | grep -i java
Detected Java version: 1.5 in: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
似乎有一种配置强制 ant 以 1.5 兼容性运行 java。我在任何地方都找不到此配置。
知道发生了什么吗?
我系统上最古老的 ant 版本是 1.7.0(我的组织也有需要使用过时的 ant 版本来构建的项目)。
如果我使用以下构建.xml文件运行ant -v
:
<?xml version="1.0"?>
<project name="ant-test" default="test">
<target name="test">
<echo message="${java.version}" />
</target>
</project>
然后 ant 1.7.0 报告:
检测到的 Java 版本:1.6 英寸:C:\程序文件\Java\jdk1.8.0_25\jre
但稍后,它显示:
[回声] 1.8.0_25
如果我使用 ant 1.8.4 或 ant 1.9.3(我也已安装)运行它,它会报告:
检测到的 Java 版本:1.8 英寸:C:\程序文件\Java\jdk1.8.0_25\jre
不出所料。因此,这只是旧版本的ant的一个案例,它错误地报告了它检测到的Java版本,因为它不知道较新版本。我不相信它实际上会给你使用 Java 1.6.0_37 构建带来任何问题。