【问题标题】:Ant using wrong Java versionAnt 使用了错误的 Java 版本
【发布时间】:2015-02-09 07:35:21
【问题描述】:

Ant 正在使用 Java 1.5,即使我没有安装 Java 1.5。我必须使用 ant 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。我在任何地方都找不到这个配置。

有什么想法吗?

【问题讨论】:

  • 你确定它真的在做任何与 Java 1.5 相关的事情,比如将 -source 1.5 -target 1.5 传递给 javac 构建任务,还是只是 misreporting java 的版本你安装了吗?我怀疑是后者。那个版本的 ant 可能已经足够老了,以至于它根本不知道任何更新的 java 版本。

标签: java macos ant


【解决方案1】:

我系统上最旧的 ant 版本是 1.7.0(我的组织也有需要使用过时版本的 ant 来构建的项目)。

如果我使用以下 build.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报告:

在:C:\Program Files\Java\jdk1.8.0_25\jre 中检测到 Java 版本:1.6

但稍后,它会显示:

[回声] 1.8.0_25

如果我使用我也安装的 ant 1.8.4 或 ant 1.9.3 运行它,它会报告:

在:C:\Program Files\Java\jdk1.8.0_25\jre 中检测到 Java 版本:1.8

正如预期的那样。所以这只是一个旧版本的 ant 错误报告它检测到的 Java 版本的情况,因为它不知道新版本。我不相信它实际上会给您使用 Java 1.6.0_37 构建带来任何问题。

【讨论】:

  • 谢谢,我觉得你说得对,不影响编译器版本。 ${ant.java.version} 的值为 1.5,我们在一些地方使用它。
猜你喜欢
  • 2010-10-31
  • 1970-01-01
  • 2021-05-22
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 2020-06-27
相关资源
最近更新 更多