起因:在执行ant脚本的时候 ,报的错误是 Error starting modern compiler
解决方法:在网上搜索了很久,找到几个帖子
http://topic.csdn.net/u/20101201/17/6eeda6a4-dc49-4d95-a4ee-c9ef813f8b2d.html?959694338
上面说用 fork="true" 就可以解决
然后有在网上搜索出另外一篇文章
http://blog.csdn.net/andyxm/article/details/5965965
报错信息:java.lang.OutOfMemoryError:The system is out of resources。
在Ant中使用javac命令,抛出的java.lang.OutOfMemoryError错误和一般java应用抛出这个错误没两样。当执行JDK的javac命令,都是调用%JAVA_HOME%/lib/tools.jar包中com.sun.tools.javac.main.Main类。
一般出现这个问题都是虚拟机分配的内存不够用。针对Ant,我调查了一番可以通过以下两种方法解决:
1)在javac节点处设置fork属性,同时指定memoryinitialsize、memorymaximumsize属性。例:
<javac fork="true"
srcdir="${basedir}/src"
destdir="${basedir}/build/classes"
classpath="${project.classpath}"
memoryinitialsize="256m"
memorymaximumsize="256m">
</javac>
说明:
-fork:没有指定fork属性(默认为false),javac命令将和ant在同一个进程中执行,同时javac被分配的内存只有64MB,如果指定fork属性为true,javac命令将和ant不在同一个进程中执行,分配内存的大小将为memoryinitialsize、memorymaximumsize指定的大小。
-memoryinitialsize:javac占用的最小内存。
-memorymaximumsize:javac占用的最大内存。
2) 第二种方法不用修改build.xml文件,通过在Ant执行时,指定虚拟机的内存来解决,不过这样ant和javac还将在同一个进程中执行,具体方法在[ANT_HOME]/bin/ant.bat文件中增加set ANT_OPTS="-Xms256m -Xmx256m" 。
如果上面两种方法都不能解决,那就只能是物理内存太小,那只能有两种方法解决这个问题,其一就是最简单的方法扩大内存,其二将工程的源文件分包编译,不过这样很麻烦,但也不乏是一种解决方法。
分享到:
相关推荐
在使用Apache Ant构建Java项目时,可能会遇到一个常见的问题,即`OutOfMemoryError`。这个错误通常发生在编译大量Java源文件时,由于资源耗尽,JVM无法分配足够的内存来执行任务。`OutOfMemoryError`是Java运行时...
### 解决OutOfMemoryError内存溢出 在Java开发过程中,我们经常会遇到`java.lang.OutOfMemoryError`(简称OOM)的问题。这个问题的发生主要是由于JVM内存不足或程序中存在内存泄漏所引起的。本文将深入探讨OOM产生...
### 解决OutOfMemoryError: PermGen space 在Java应用程序运行过程中,可能会遇到“OutOfMemoryError: PermGen space”的错误提示。这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于...
### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...
"Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...
在使用Eclipse集成开发环境(IDE)进行ANT编译时,有时会遇到“OutOfMemory”错误,这通常意味着ANT在尝试编译大量代码或者运行复杂构建任务时,分配给它的内存不足。为了解决这个问题,我们需要调整ANT的内存设置,...
java.lang.OutOfMemoryError处理错误 java.lang.OutOfMemoryError是Java虚拟机(JVM)中的一种常见错误,...java.lang.OutOfMemoryError是Java虚拟机中的一种常见错误,解决这种错误需要根据实际情况进行分析和解决。
《junrar的OutOfMemoryError错误解决深度解析》 在日常的IT工作中,我们经常会遇到各种类型的问题,其中,`OutOfMemoryError`是一个常见的Java运行时异常,它表明程序在执行过程中耗尽了可用的内存资源。对于使用...
当应用程序加载大量类或者使用了大量的静态变量和常量时,PermGen space可能会耗尽,从而引发`java.lang.OutOfMemoryError: PermGen space`错误。对于频繁部署或重载JSP的Web应用,如Tomcat,这个问题尤为常见。 ...
java.lang.OutOfMemoryError: PermGen space 解决方案
OutOfMemoryError解决办法.md
OutOfMemoryError如何解决.md
### Tomcat 出现 OutOfMemoryError 的解决方法 #### 一、问题概述 在部署应用至 Tomcat 服务器时,经常会遇到一个常见的错误:`java.lang.OutOfMemoryError: PermGen space`。该错误表明 Java 虚拟机 (JVM) 的永久...
java.lang.OutOfMemoryError: Java heap space 解决方法
总的来说,解决`java.lang.StackOverflowError`涉及理解Java的内存模型,尤其是线程栈的工作原理,以及适时调整JVM参数。同时,代码优化是预防这类问题的关键,确保递归的正确性,减少不必要的内存消耗,并充分利用...
【系统稳定性——OutOfMemoryError常见原因及解决方法】 在Java应用程序中,系统稳定性的一个关键因素是避免出现`OutOfMemoryError`。这种错误通常表明JVM(Java虚拟机)的内存资源已经耗尽,无法继续正常运行。...
因此,解决`OutOfMemoryError`的关键在于理解内存的分配机制,合理设置JVM参数,监测内存使用情况,检查是否存在内存泄漏,以及在必要时调整系统的物理内存分配。对于大型Java应用,了解JVM内存模型和操作系统内存...
这个错误表明Java虚拟机(JVM)没有足够的内存来创建新的对象,这可能是由于程序设计导致的内存泄漏,或者是对大对象的不当处理,或者是分配给Java应用的堆内存不足。 为了解决这个问题,我们需要深入理解Java内存...