`
cuijiemin
  • 浏览: 269510 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ant解决OutOfMemoryError

阅读更多

今天上班时,使用ant给项目发布环境时,原因是在使用javac编译大量java源文件时,抛出了一个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属性。例:


说明:
-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" 。

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

分享到:
评论
1 楼 luoqiyi 2014-07-02  
如果是在java节点呢?而且报出的异常就只是这样:java.lang.OutOfMemoryError
也没有说是堆内存不够 还是永久性的内存不够 这样的话要如何解决?也试过网上能找到的增加内存的方法了。感觉还是一样 的异常 同一个地方。

相关推荐

    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)内存不足的情况下,永久代主要用于...

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

    为了解决这个问题,我们需要调整ANT的内存设置,确保它有足够的资源来处理编译过程。 ANT是一个强大的构建工具,它可以用来自动化Java项目的各种任务,如编译、打包、测试等。然而,当项目规模增大,ANT需要处理的...

    OutOfMemoryError如何解决.md

    解决OutOfMemoryError通常需要从内存管理、代码优化、数据结构选择等多个角度进行综合考虑和处理。 首先,可以考虑调整JVM的最大内存设置。这可以通过设置JVM启动参数来实现,例如设置最大堆内存为4GB的命令格式为`...

    junrar的OutOfMemoryError错误解决源码

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

    OutOfMemoryError解决办法.md

    OutOfMemoryError是Java程序在运行过程中因内存溢出而抛出的一种常见的运行时错误,当...解决OutOfMemoryError需要从多个角度出发,综合考虑代码优化、内存分配策略以及内存管理策略等因素,才能有效地解决这一问题。

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

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

    OutOfMemoryError(解决方案).md

    除了程序设计,诊断和监控工具也是解决OutOfMemoryError的有力武器。使用Eclipse Memory Analyzer (MAT)、VisualVM等工具可以分析JVM的内存使用状况,定位内存泄漏的具体位置,并提供内存使用的详细分析报告。这些...

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

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

    java.lang.OutOfMemoryError解决办法

    Java中的`java.lang.OutOfMemoryError`是一种常见的运行时错误,通常表示应用程序在尝试分配内存时遇到了问题。根据提供的信息,这个错误主要涉及到两个方面:`PermGen space`和`Java heap`,并且与Tomcat服务器相关...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    ### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...

    tomcat 出现 OutOfMemoryError 的解决方法

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

    java.lang.OutOfMemoryError 解决方法

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

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

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

Global site tag (gtag.js) - Google Analytics