`
bdk82924
  • 浏览: 562938 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ant解决OutOfMemoryError 或者Error starting modern compiler

 
阅读更多
起因:在执行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" 。

     如果上面两种方法都不能解决,那就只能是物理内存太小,那只能有两种方法解决这个问题,其一就是最简单的方法扩大内存,其二将工程的源文件分包编译,不过这样很麻烦,但也不乏是一种解决方法。
分享到:
评论

相关推荐

    ant编译时抛出OutOfMemoryError.doc

    在使用Apache Ant构建Java项目时,可能会遇到一个常见的问题,即`OutOfMemoryError`。这个错误通常发生在编译大量Java源文件时,由于资源耗尽,JVM无法分配足够的内存来执行任务。`OutOfMemoryError`是Java运行时...

    解决OutOfMemoryError内存溢出

    ### 解决OutOfMemoryError内存溢出 在Java开发过程中,我们经常会遇到`java.lang.OutOfMemoryError`(简称OOM)的问题。这个问题的发生主要是由于JVM内存不足或程序中存在内存泄漏所引起的。本文将深入探讨OOM产生...

    解决OutOfMemoryError: PermGen space

    ### 解决OutOfMemoryError: PermGen space 在Java应用程序运行过程中,可能会遇到“OutOfMemoryError: PermGen space”的错误提示。这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于...

    Myeclipse下java.lang.OutOfMemoryError Java heap 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.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...

    Eclipse下使用ANT编译提示OutOfMemory的解决方法

    在使用Eclipse集成开发环境(IDE)进行ANT编译时,有时会遇到“OutOfMemory”错误,这通常意味着ANT在尝试编译大量代码或者运行复杂构建任务时,分配给它的内存不足。为了解决这个问题,我们需要调整ANT的内存设置,...

    java.lang.OutOfMemoryError处理错误

    java.lang.OutOfMemoryError处理错误 java.lang.OutOfMemoryError是Java虚拟机(JVM)中的一种常见错误,...java.lang.OutOfMemoryError是Java虚拟机中的一种常见错误,解决这种错误需要根据实际情况进行分析和解决。

    junrar的OutOfMemoryError错误解决源码

    《junrar的OutOfMemoryError错误解决深度解析》 在日常的IT工作中,我们经常会遇到各种类型的问题,其中,`OutOfMemoryError`是一个常见的Java运行时异常,它表明程序在执行过程中耗尽了可用的内存资源。对于使用...

    java.lang.OutOfMemoryError解决办法

    当应用程序加载大量类或者使用了大量的静态变量和常量时,PermGen space可能会耗尽,从而引发`java.lang.OutOfMemoryError: PermGen space`错误。对于频繁部署或重载JSP的Web应用,如Tomcat,这个问题尤为常见。 ...

    java.lang.OutOfMemoryError: PermGen space解决方案

    java.lang.OutOfMemoryError: PermGen space 解决方案

    tomcat 出现 OutOfMemoryError 的解决方法

    ### Tomcat 出现 OutOfMemoryError 的解决方法 #### 一、问题概述 在部署应用至 Tomcat 服务器时,经常会遇到一个常见的错误:`java.lang.OutOfMemoryError: PermGen space`。该错误表明 Java 虚拟机 (JVM) 的永久...

    java.lang.OutOfMemoryError 解决方法

    java.lang.OutOfMemoryError: Java heap space 解决方法

    如何解决java.lang.StackOverflowError

    总的来说,解决`java.lang.StackOverflowError`涉及理解Java的内存模型,尤其是线程栈的工作原理,以及适时调整JVM参数。同时,代码优化是预防这类问题的关键,确保递归的正确性,减少不必要的内存消耗,并充分利用...

    解决出现CUDA error-out of memory的问题.pdf

    理解并掌握这些技巧对于有效利用GPU资源、避免或解决“CUDA error: out of memory”问题至关重要。在实践中,应结合日志监控和调试工具,对模型的显存使用进行精细化管理,确保训练过程的顺利进行。

    系统稳定性——OutOfMemoryError常见原因及解决方法1

    【系统稳定性——OutOfMemoryError常见原因及解决方法】 在Java应用程序中,系统稳定性的一个关键因素是避免出现`OutOfMemoryError`。这种错误通常表明JVM(Java虚拟机)的内存资源已经耗尽,无法继续正常运行。...

    遭遇OutOfMemoryError

    因此,解决`OutOfMemoryError`的关键在于理解内存的分配机制,合理设置JVM参数,监测内存使用情况,检查是否存在内存泄漏,以及在必要时调整系统的物理内存分配。对于大型Java应用,了解JVM内存模型和操作系统内存...

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    这个错误表明Java虚拟机(JVM)没有足够的内存来创建新的对象,这可能是由于程序设计导致的内存泄漏,或者是对大对象的不当处理,或者是分配给Java应用的堆内存不足。 为了解决这个问题,我们需要深入理解Java内存...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    总之,"java.lang.OutOfMemoryError: PermGen space"错误是由于Java虚拟机的 PermGen 区域内存不足造成的,可以通过增大 PermGen 区域的大小、升级JVM版本、优化类加载和库的使用等方式来解决。对于任何内存管理问题...

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

Global site tag (gtag.js) - Google Analytics