我有一个正在处理的大型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时,此属性也可用于指定可执行文件的路径。
有没有人有任何想法?
谢谢 -
答案 0 :(得分:0)
我使用单个ANT构建来编译1.7中的一组类和1.6中的另一组类,它工作正常。
1.7和1.6都是IBM JDK。 JAVA_HOME指向1.7 JDK& ANT版本是1.9
以下是使用的ANT标签
使用JAVA_HOME进行1.7编译
`<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}">`
希望这有帮助。