今天在做导出操作的一个功能时候,报使用Java程序从数据库中查询大量的数据时出现异常:
java.lang.OutOfMemoryError: Java heap space
异常原因:
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
在百度和谷歌后有了以下的解决方案记录如下:
方案一:
eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无关。
那么怎么才能设置某个程序的jvm大小呢?
(当然控制台运行的话不会存在这个问题,如:java -Xms256m -Xmx1024m classname,这样就可以把当前程序的jvm大小给设定)?
因为eclipse里默认的一个程序的jvm配置为:-Xms8m -Xmx128m,所以我们的处理耗内存比较大时需要手动调整一下,以便不会内存溢出。
具体的设置方法为:
选中被运行的类,点击菜单‘run->run...’,选择(x)=Argument标签页下的vm arguments框里输入
-Xms128m-Xmx512m, 保存运行就ok了
方案二:
这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.
1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m
2.如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat 中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.
3.如果是linux系统
Linux 在{tomcat_home}/bin/catalina.sh的前面,加
set JAVA_OPTS='-Xms64 -Xmx512'
分享到:
相关推荐
### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....
"Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...
### 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程序在运行过程中可能会遇到各种异常,其中"nested exception is java.lang.OutOfMemoryError: Java heap space"是一个常见的问题,通常发生在程序试图分配超过堆内存限制的空间时。这个错误表明Java虚拟机(JVM...
### Java.lang.OutOfMemoryError:Java Heap Space 错误及处理办法 在Java应用程序开发与维护过程中,经常会遇到`java.lang.OutOfMemoryError: Java heap space`这一异常情况。该异常通常表明Java虚拟机(JVM)的堆...
Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...
### 解决Java_heap_space问题:深入理解与策略 在Java应用程序开发与运行过程中,经常会遇到一个常见的内存管理问题——“Java heap space”。这个问题通常表现为Java虚拟机(JVM)在执行过程中因可用堆内存不足而...
当Java应用程序尝试分配新的对象,但堆内存(Heap Space)不足以容纳这些对象时,就会抛出`java.lang.OutOfMemoryError: Java heap space`。此错误可能由以下几个原因引起: - 创建超大数据结构,如大数组。 - ...
Java 堆内存溢出是Java开发者经常遇到的问题,它表现为`java.lang.OutOfMemoryError:Java heap space`错误,通常发生在应用无法分配足够的内存来执行任务时。要理解和解决这个问题,我们需要深入探究Java内存管理...
Java程序在运行过程中可能会遇到内存不足的问题,表现为`java.lang.OutOfMemoryError: Java heap space`,这通常意味着Java虚拟机(JVM)的堆内存已耗尽,无法分配更多的空间给应用程序使用。堆内存是Java程序中用来...
`java.lang.OutOfMemoryError:Java heap space`是一个常见的异常,但它通常是可以通过调整JVM参数、优化代码逻辑以及使用适当的工具来检测和解决内存泄露等方式来有效处理的。开发者应当养成良好的编程习惯,及时...
- **错误现象1:java.lang.OutOfMemoryError: Java heap space** - 原因:Java虚拟机(JVM)分配的内存不足。 - 解决方法:通过修改mapred-site.xml文件,增大mapred.child.java.opts属性的值,以增加JVM堆内存。...
PermSize 和 MaxPermSize 的设置应该根据实际情况进行调整,太小可能会导致 java.lang.OutOfMemoryError: PermGen space。 重启 Eclipse 后,该问题应该解决。 其他解决方法 除了修改 eclipse.ini 文件外,还可以...
当堆内存不足时,可能会引发`java.lang.OutOfMemoryError: Java heap space`错误。 2. **栈内存**:每个线程都有自己的程序计数器、虚拟机栈和本地方法栈,用于存储方法调用过程中的局部变量、方法参数等。如果栈...
java.lang.OutOfMemoryError: Java heap space ``` 初步判断可能的原因有: 1. **JVM内存设置不当**: - 项目的实际需求超出默认的JVM内存设置。 2. **内存泄露**: - 程序中存在未被正确回收的内存。 #### 五、...
然而,在使用过程中,用户可能会遇到“eclipse内存溢出报错”的问题,这一现象通常表现为Java.lang.OutOfMemoryError: Java heap space错误,这主要源于Eclipse运行时分配给Java虚拟机(JVM)的内存不足,导致程序...
在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这类错误提示。这表明当前分配给Java虚拟机(JVM)的内存不足以支持程序正常运行,即发生...
如果在运行过程中出现`java.lang.OutOfMemoryError: Java heap space`错误,则需要调整JVM参数。在`Run Configurations`中的`VM Arguments`中加入以下参数:`-Xms512m -Xmx1024m -XX:MaxPermSize=256m`。 5. **...