標籤:java eclipse heap
1、錯誤描述
java.lang.OutOfMemoryError: GC overhead limit exceededat java.util.zip.ZipFile.<init>(ZipFile.java:466)at java.util.zip.ZipFile.<init>(ZipFile.java:145)at java.util.zip.ZipFile.<init>(ZipFile.java:159)at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile(JavaModelManager.java:2712)at org.eclipse.jdt.internal.core.util.Util.getJdkLevel(Util.java:846)at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.<init>(JarPackageFragmentRoot.java:65)at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:619)at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:708)at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:672)at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:467)at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:259)at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:557)at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:294)at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:280)at org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo(JavaProject.java:1642)at org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2329)at org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2339)at org.eclipse.jdt.internal.core.JavaProject.findType(JavaProject.java:1357)at org.eclipse.jdt.internal.core.JavaProject.findType(JavaProject.java:1264)at org.eclipse.jst.jsp.core.internal.java.JSPTranslator.addNameToListIfTypeNotFound(JSPTranslator.java:3183)at org.eclipse.jst.jsp.core.internal.java.JSPTranslator.isTypeFound(JSPTranslator.java:3174)at org.eclipse.jst.jsp.core.internal.java.JSPTranslator.buildResult(JSPTranslator.java:705)at org.eclipse.jst.jsp.core.internal.java.JSPTranslator.translate(JSPTranslator.java:1245)at org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter.getJSPTranslation(JSPTranslationAdapter.java:152)at org.eclipse.jst.jsp.core.internal.java.search.JSPSearchDocument.getJSPTranslation(JSPSearchDocument.java:120)at org.eclipse.jst.jsp.core.internal.java.search.JSPSearchDocument.getPath(JSPSearchDocument.java:159)at org.eclipse.jst.jsp.core.internal.java.search.JavaSearchDocumentDelegate.<init>(JavaSearchDocumentDelegate.java:30)at org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport.createSearchDocument(JSPSearchSupport.java:448)at org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport.addJspFile(JSPSearchSupport.java:278)at org.eclipse.jst.jsp.core.internal.java.search.JSPIndexManager.performAction(JSPIndexManager.java:138)at org.eclipse.wst.sse.core.indexing.AbstractIndexManager$1.run(AbstractIndexManager.java:1528)at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)!ENTRY org.eclipse.core.jobs 4 2 2015-04-13 14:41:04.195!MESSAGE An internal error occurred during: "Refresh SVN status cache".!STACK 0java.lang.OutOfMemoryError: Java heap spaceat org.eclipse.osgi.storage.StorageUtil.getBytes(StorageUtil.java:193)at org.eclipse.osgi.storage.bundlefile.BundleEntry.getBytes(BundleEntry.java:94)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:568)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:540)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:527)at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:311)at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:386)at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336)at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328)at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:800)at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:272)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:632)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:588)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:540)at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:527)at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:311)at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:386)at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336)at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328)at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)at org.tigris.subversion.clientadapter.javahl.Activator.getAdapter(Activator.java:64)at org.tigris.subversion.clientadapter.Activator.getClientAdapter(Activator.java:84)at org.tigris.subversion.subclipse.core.SVNClientManager.getAdapter(SVNClientManager.java:127)at org.tigris.subversion.subclipse.core.SVNClientManager.getSVNClient(SVNClientManager.java:94)at org.tigris.subversion.subclipse.core.SVNProviderPlugin.getSVNClient(SVNProviderPlugin.java:462)at org.tigris.subversion.subclipse.core.status.NonRecursiveStatusUpdateStrategy.statusesToUpdate(NonRecursiveStatusUpdateStrategy.java:54)org.eclipse.e4.core.di.InjectionException: java.lang.OutOfMemoryError: GC overhead limit exceededat org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286)at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507)at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558)at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378)at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324)at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86)at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1060)at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)at org.eclipse.swt.widgets.Control.traverse(Control.java:4106)at org.eclipse.swt.widgets.Control.translateMnemonic(Control.java:3948)at org.eclipse.swt.widgets.Composite.translateMnemonic(Composite.java:1205)at org.eclipse.swt.widgets.Control.translateMnemonic(Control.java:3966)at org.eclipse.swt.widgets.Display.translateMnemonic(Display.java:4823)at org.eclipse.swt.widgets.Display.filterMessage(Display.java:1276)at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)at org.eclipse.equinox.launcher.Main.run(Main.java:1465)Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
點擊“OK”後,出現以下視窗:
2、錯誤原因
由Eclipse日誌和快顯視窗可知,是由於Eclipse記憶體不夠,需要修改記憶體設定
3、解決辦法
(1)開啟Eclipse解壓路徑,找到“eclipse.ini”檔案
(2)用編輯工具開啟“eclipse.ini”,將裡面有關設定改成“-Xms512m -Xmx1024m”
-startupplugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326-productorg.eclipse.epp.package.jee.product--launcher.defaultActionopenFile--launcher.XXMaxPermSize256M-showsplashorg.eclipse.platform--launcher.XXMaxPermSize256m--launcher.defaultActionopenFile--launcher.appendVmargs-vmargs-Dosgi.requiredJavaVersion=1.6-Xms512m-Xmx1024m
Unhandled event loop exception GC overhead limit exceeded