`
sbabzc
  • 浏览: 39178 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java.lang.OutOfMemoryError 异常解决

阅读更多
tomcat在从数据库里读取大量数据的时候,加载jar包可能会出现下面两种异常
1:java.lang.OutOfMemoryError: PermGen space
2:java.lang.OutOfMemoryError: Java heap space

两种异常的解决方法都是增加内存

解决方法:

1:Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'

需要把这个两个参数值调大。例如:

JAVA_OPTS='-Xms256m -Xmx512m'

需要把这样代码写在 文件的最下面即可。

2:环境变量中设     变量名:JAVA_OPTS     变量值:-Xms512m   -Xmx512m

注意:
建议把内存的最高值跟最低值的差值缩小,不然会浪费很多内存的, 最低值加大 ,最高值可以随便设,但是要根据实际的物理内存 ,如果内存设置太大了,比如设置了1024M最大内存,但如果没有1024M可用内存,Tomcat就不能启动,还有可能存在内存被系统回收,终止进程的情况
--------------------------------------------------------------------------------------------------------

下面解释下为什么出现这样的问题

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存: 这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。
本文地址:http://www.xszlo.com/article/2012-11-13/7499.html,转发请保留这个地址,谢谢
分享到:
评论

相关推荐

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    其中,“java.lang.OutOfMemoryError: Java heap space”是一种常见的异常情况,它表明Java虚拟机(JVM)的堆内存空间已耗尽。 #### 标题和描述中的知识点详解 **标题:“java错误处理:java.lang.OutOfMemoryError:...

    编译时出现java.lang.OutOfMemoryError Java heap space异常

    ### 编译时出现java.lang.OutOfMemoryError Java heap space异常 ...通过上述方法的综合运用,通常能够有效地解决`java.lang.OutOfMemoryError: Java heap space`异常,确保项目的顺利编译和运行。

    java.lang.OutOfMemoryError处理错误

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

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

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

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

    Java程序在运行过程中可能会遇到各种异常,其中"nested exception is java.lang.OutOfMemoryError: Java heap space"是一个常见的问题,通常发生在程序试图分配超过堆内存限制的空间时。这个错误表明Java虚拟机(JVM...

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

    当PermGen space的可用空间被耗尽时,Java应用程序将抛出`java.lang.OutOfMemoryError: PermGen space`异常。这种错误通常发生在应用程序加载了大量类或动态生成了很多类的情况下,例如使用了大量的第三方库或者在...

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    通过添加这些参数,可以增加 JVM 的内存空间,避免 PermGen space 溢出,解决 java.lang.OutOfMemoryError: PermGen space 异常。 在实际应用中,我们需要根据项目的具体情况,调整这些参数的值,以确保 JVM 的内存...

    Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException)

    "java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError" 是一个典型的错误提示,它表明在并发执行过程中遇到了内存不足的问题。下面我们将深入探讨这个问题的原因、影响以及如何解决。 内存溢出...

    java[1].lang.OutOfMemoryError_Java_heap_space错误及处理办法

    在Java应用程序开发与维护过程中,经常会遇到`java.lang.OutOfMemoryError: Java heap space`这一异常情况。该异常通常表明Java虚拟机(JVM)的堆内存不足以支持当前程序运行所需的内存分配请求。本文将详细介绍该...

    解决Handler processing failed; nested exception is java.lang.NoClassDefFoundError_kmode exception

    4. **java.lang.NoClassDefFoundError- javax-servlet-jsp-jstl-core-Config - CSDN博客.url**:这个URL指向一个CSDN博客文章,很可能提供了关于如何解决特定`NoClassDefFoundError`的详细步骤,特别是与`javax....

    如何解决java.lang.StackOverflowError

    在Java编程中,`java.lang.StackOverflowError` 是一个常见的运行时异常,它通常发生在程序执行过程中,当Java虚拟机(JVM)的调用栈溢出时。调用栈是每个线程用来存储方法调用信息的数据结构,当递归调用过深或者...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....

    完美解决java.lang.OutOfMemoryError处理错误的问题

    Java中的`java.lang.OutOfMemoryError`是一种常见的运行时错误,通常表示应用程序在尝试分配新的内存对象时,Java虚拟机(JVM)无法找到足够的连续内存空间来完成操作。这个错误可能由多种原因引起,主要分为堆内存...

    java.lang.OutOfMemoryError 错误整理及解决办法

    Java中的`java.lang.OutOfMemoryError`是一个严重的问题,它表示Java虚拟机(JVM)在尝试分配新的对象时没有足够的内存。这个错误通常会导致应用程序崩溃。本文将深入探讨这种错误的原因、常见类型以及解决策略。 *...

    Android 出现:java.lang.NoClassDefFoundError…错误解决办法

    在Android开发过程中,有时会遇到一个令人困惑的错误——`java.lang.NoClassDefFoundError`。这个错误通常意味着在运行时找不到某个类的定义,即使编译时该类是可用的。在本例中,问题出在一个特定的情景:在Android...

    实例解决Java异常之OutOfMemoryError的问题

    Java异常解决之OutOfMemoryError Java 中的 OutOfMemoryError 异常是指 Java 虚拟机在运行时无法申请到足够的内存空间,导致程序崩溃的错误。该错误可以发生在 Java 堆、虚拟机栈、本地方法栈和直接内存等几个运行...

    解决OutOfMemoryError内存溢出

    解决`java.lang.OutOfMemoryError`需要综合考虑应用程序的实际需求、JVM配置以及代码层面的优化。通过对JVM内存配置的合理调整、代码层面的有效优化,可以大大减少OOM的发生概率,从而提高系统的稳定性和性能。

    java.lang.OutOfMemoryErrorJavaheapspace.pdf

    了解`java.lang.OutOfMemoryError: Java heap space`错误的原因和解决方案,有助于我们在编写Java程序时避免此类问题,确保程序的稳定运行。通过合理的内存管理和优化代码,我们可以有效地预防和解决这个问题。

    java 异常种类总结【转】.docx

    java.lang.OutOfMemoryError 是一种内存不足错误,指的是在程序中可用内存不足以让 Java 虚拟机分配给一个对象时抛出的异常。 28. java.lang.StackOverflowError 堆栈溢出错误 java.lang.StackOverflowError 是一...

    解析Java中所有错误和异常的父类java.lang.Th

    在Java编程语言中,`java.lang.Throwable`是所有错误(Error)和异常(Exception)的顶级父类,它是Java异常处理机制的核心组成部分。这个类位于`java.lang`包中,是Java标准库的一部分,提供了处理运行时问题的标准...

Global site tag (gtag.js) - Google Analytics