【发布时间】: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