使用ant进行java项目编译时提示 Error starting modern compiler,
build.xml出错部分的脚本如下:
<target name="compile" depends="prepare" description="编绎">
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="**">
<classpath refid="build.classpath" />
</javac>
</target>
出现这个问题都是虚拟机分配的内存不够用。
解决方法如下:
在javac节点处设置fork属性,同时指定memoryinitialsize、memorymaximumsize属性。-fork:没有指定fork属性时默认为false,javac命令将和ant在同一个进程中执行,同时 javac被分配的内存只有64MB,如果指定fork属性为true,javac命令将和ant在 不 同进程中执行,分配内存的大小将为 memoryinitialsize、memorymaximumsize指定的大小。
-memoryinitialsize:javac占用的最小内存。
-memorymaximumsize:javac占用的最大内存。
因此只需添加属性fork="true"即可解决此问题