2

我正在处理一个大型 ant 构建,目前内存不足。我读过的一种有助于缓解此问题的方法是使用 javac fork="true" 在单独的 jvm 中运行 javac。

我的问题是我需要使用 IBM JDK 编译项目(这不是 JAVA_HOME 引用的 JDK,我不希望它是)。我尝试将 Ant 的 javac 的可执行属性设置为 IBM 的 javac 的路径,但没有任何乐趣(项目仍然无法编译)。Ant 的可执行属性状态文档:

在 fork="yes" 的情况下使用的 javac 可执行文件的完整路径。默认为当前运行 Ant 的 Java 版本的编译器。如果 fork="no" 则忽略。从 Ant 1.6 开始,此属性也可用于在使用 jikes、jvc、gcj 或 sj 时指定可执行文件的路径。

有没有人有任何想法?

谢谢 -

4

1 回答 1

0

我使用单个 ANT 构建来编译 1.7 中的一组类和 1.6 中的另一组类,它工作正常。

1.7 和 1.6 都是 IBM JDK 的。JAVA_HOME 指向 1.7 JDK & ANT 版本是 1.9

以下是使用的 ANT 标签

1.7 使用JAVA_HOME编译

`<javac srcdir="${LOCAL_SOURCE_PATH}/temp" debug="true" deprecation="false" fork="true" memoryInitialSize="1024M" memoryMaximumSize="1500M" verbose="${verbose}">`

1.6 编译使用javac标签可执行属性

`<javac srcdir="${LOCAL_SOURCE_PATH}/branchtmp" fork="true" executable="${JAVA6_HOME}/bin/javac" compiler="javac1.6" debug="true" deprecation="false"memoryInitialSize="1024M" verbose="${verbose}">`

希望这可以帮助。

于 2015-10-30T06:13:55.883 回答