java - Ant 使用错误的 Java 版本

标签 java macos ant

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。我在任何地方都找不到这个配置。

有什么想法吗?

最佳答案

我的系统上最旧的 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 报告:

Detected Java version: 1.6 in: C:\Program Files\Java\jdk1.8.0_25\jre

但稍后,它显示:

[echo] 1.8.0_25

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

Detected Java version: 1.8 in: C:\Program Files\Java\jdk1.8.0_25\jre

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

关于java - Ant 使用错误的 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412336/

相关文章:

java - Renjin无法安装(默认)软件包

升级到 Mojave 后无法在 Mac 上编译 C 程序

javascript - 通过预处理运行 javascript

java - ANT:将字符串拆分为多个参数

android - 没有为 android ant 脚本设置 "includeAntRuntime"?

java - Spring Batch 2.x 中的 BATCH_STEP_EXECUTION 中缺少 ITEM_COUNT 列

java - 从文件中读取以逗号分隔的整数到二维数组中

java - 我该如何解决 "java.lang.NoClassDefFoundError"?

java - eclipse 如何知道有哪些 OSGi 包可以依赖?

macos - Mac OS X 沙箱和磁盘仲裁