Java堆空间异常java.lang.OutOfMemoryError

Kas*_*nKP 3 java exception heap-memory

我正在开发一个涉及大量文档处理的抄袭检测应用程序.为索引文档,我正在使用Apache Lucene,我使用Apache solr作为文档服务器.我使用Jasper报告作为报告模块.在处理完所有文档并检测到抄袭之后,我调用了一个使用Jasper报告开发的接口,当时发生了java堆空间异常.我试图增加应用程序中的堆空间,但仍然抛出相同的异常.有什么建议可以帮我解决这个问题.

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at reportingModule.PeerSearchUI.generateResults(PeerSearchUI.java:901)
at reportingModule.PeerSearchUI.setResultDetails(PeerSearchUI.java:833)
at gui.form.WizardForm.ViewButtonActionPerformed(WizardForm.java:1372)
at gui.form.WizardForm.access$1200(WizardForm.java:50)
at gui.form.WizardForm$13.actionPerformed(WizardForm.java:870)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
Run Code Online (Sandbox Code Playgroud)

rin*_*rer 6

从您的异常,错误与堆(不是permgen或任何其他特定空格)有关,因此唯一要调整的参数将是-Xmx,所以这是我的建议:

让JVM使用-Xmx使用更多内存 - 尝试1G: -Xmx1024m

如果最终导致同样的错误,

  • 使用参数-XX启动JVM:+ HeapDumpOnOutOfMemoryError当程序进入OOM时,这将为您提供堆转储.
  • 使用像visualVM这样的工具来分析获得的堆转储.这将有助于识别内存泄漏.

除此之外,没有通用的解决方案可以修复java.lang.OutOfMemoryError: Java heap space- 它可以是非常特定于应用程序的.