【问题标题】:xception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: PermGen space线程“AWT-EventQueue-0”java.lang.OutOfMemoryError 中的异常:PermGen 空间
【发布时间】:2014-02-20 11:20:10
【问题描述】:

执行 java 桌面应用程序时,我得到一个 java.lang.OutOfMemoryError: PermGen space.

我尝试增加 java 堆大小,将此参数传递给 VM:

-Xmx1g

但它总是失败。如果任何其他同事在他们的计算机上运行它也不会失败...

这可能是什么原因造成的?

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: PermGen space
    at org.eclipse.jdt.internal.compiler.Compiler.initializeParser(Compiler.java:485)
    at org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:112)
    at net.sf.jasperreports.engine.design.JRJdtCompiler.compileUnits(JRJdtCompiler.java:200)
    at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:201)
    at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:240)
    at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:173)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:448)
    at de.mycompany.jasperReportgenerator.JasperReportDatenGenerator.generateReport(JasperReportDatenGenerator.java:567)
    at de.mycompany.myapp.admintool.gui.reports.controller.IFrmReportsController.generiereReport(IFrmReportsController.java:92)
    at de.mycompany.myapp.admintool.gui.reports.controller.IFrmReportsController.handleAction(IFrmReportsController.java:43)
    at de.mycompany.myapp.admintool.util.AdminkonsoleIFrameController.handleActionWithExceptionHandling(AdminkonsoleIFrameController.java:107)
    at de.mycompany.myapp.admintool.gui.reports.controller.IFrmReportsController.mouseClicked(IFrmReportsController.java:62)
    at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
    at java.awt.Component.processMouseEvent(Component.java:6300)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
    at java.awt.Component.processEvent(Component.java:6062)
    at java.awt.Container.processEvent(Container.java:2039)
    at java.awt.Component.dispatchEventImpl(Component.java:4660)
    at java.awt.Container.dispatchEventImpl(Container.java:2097)
    at java.awt.Component.dispatchEvent(Component.java:4488)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4245)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
    at java.awt.Container.dispatchEventImpl(Container.java:2083)
    at java.awt.Window.dispatchEventImpl(Window.java:2489)
    at java.awt.Component.dispatchEvent(Component.java:4488)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
    at java.awt.EventQueue.access$400(EventQueue.java:81)
    at java.awt.EventQueue$2.run(EventQueue.java:633)
    at java.awt.EventQueue$2.run(EventQueue.java:631)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

【问题讨论】:

  • 使用-XX:MaxPermSize
  • 你能解释一下吗?它说“无法识别的 VM 选项 'MaxPermSize'”
  • 你试过谷歌搜索吗?这是常识。
  • 我只尝试过 -XX:MaxPermSize 这是我发现的第一件事,现在我正在尝试 -XX:MaxPermSize=1g
  • 好吧,现在它不会抛出那个错误......但是另一个错误,但这与内存无关。谢谢。

标签: java out-of-memory permgen


【解决方案1】:

正如 Marko Topolnik 所说,

-XX:MaxPermSize 就是答案。

-XX:MaxPermSize=1g 成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2013-04-28
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多