java - 在同一台机器上安装多个版本的ant

标签 java ant java-8 java-7

我想运行不同的项目,其中一个在 Java8 上运行,另一个在 Java7 上运行。我已经在我的 mac 上安装了最新的 ant 版本 1.10。如果我将 JAVA_HOME 设置为 java7,则 ant 执行失败并显示

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0

(Ant 1.9 在 Java7 上运行)

最佳答案

据 Ant 金服home page :

The Apache Ant team currently maintains two lines of development. The 1.9.x releases require Java5 at runtime and 1.10.x requires Java8 at runtime.

因此,您需要将 JAVA_HOME 设置为 JDK 8 才能运行 Ant 1.10。但这只是为了运行 Ant 本身,与您的项目无关。换句话说,不需要使用多个版本的 Ant 来编译两个使用两个不同 Java 版本的项目。 Ant 1.10.x 可用于这两个项目。您可以从构建文件中的任务中控制 Java 版本。例如,javac任务支持使用不同的JDK版本进行编译:

<javac srcdir="${src}"
     destdir="${build}"
     classpath="xyz.jar"
     debug="on"
     source="1.4"
/>

关于java - 在同一台机器上安装多个版本的ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43354118/

相关文章:

java - 如何使用 java 中的 jButton 打印 TextArea 中的文本?

java - BufferedWriter缓冲区大小及占用内存

java - 如何序列化对象的 ArrayList 并将其保存到文件(在 android 中)?

ant - Android Studio:无法声明自定义gradle任务,无法解决符号错误

java - 如何让 Ant sshexec 使用非空密码

java - 将时间/日期时间与时区信息完整提取到 Java8 OffsetTime/OffsetDateTime 中

java-8 - Java8划分日期而没有时间

java - 如何在运行时获取 Hibernate 方言

java - 仅停止构建脚本的一部分

java - 返回 Optional<Map<String, String>> 而不仅仅是一个空的 Map<String, String> 的真正好处是什么