在OS X(Snow Leopard)编译现有项目时,遇到“错误:Java堆空间,java.lang.OutOfMemoryError: Java堆空间”。
我正在使用默认的Java 1.6 64位SDK和Ant默认安装程序(两者均作为操作系统的一部分提供)。
我在其他操作系统环境中也遇到过这个问题,并通常通过使用ANT_OPTS来增加分配的内存来解决,但这似乎无效。
我尝试设置ANT_OPTS如下:
在同一个shell中,我输入
export ANT_OPTS="-Xmx1024m' ant build
我还尝试在~/.bash_profile中设置该值(我源代码以确保被接受)。
最终,我通过增加Ant脚本中javac任务中的内存来解决了内存问题,但这并不理想(我更喜欢使用ANT_OPTS)。
在OS X中运行Ant时,增加堆内存的正确方式是什么?
更新:
看起来我错了,ANT_OPTS正在按预期工作。问题在于我正在fork javac任务(如bkail所描述)。
这引出了我的下一个问题。为什么JAVAC进程在OSX上总是耗尽内存,而相同的代码/ant脚本在Linux上却可以正常工作?OSX默认安装的Java有什么不同,需要分配额外的内存?