ubuntu 에서 eclipse launcher error 발생시 처리방법 - Clipmarks

Someone has sent you a clip...

Personal Message:
법이놈 땜시 여러차레 애먹었다.
구굴에서 찾았다.

clipped from brh.numbera.com

Eclipse NoClassDefFoundError near installFont on startup

At work and at home I use Eclipse as my IDE of choice for Java development, along with Eclipse-in-disguise Aptana for web development. I've never had a problem with Eclipse on Windows or on my Mac, but on my Linux machine (and many of my co-workers' machines) Eclipse tends to crash rather violently. I suspect that it isn't Eclipse at all, but the primitive P4WSAD Perforce plugin. I don't use Perforce at home, so that might be the difference. Anyway, what happens is that in the middle of doing something Eclipse will run out of PermGen memory, throw up some errors, and die in the least pleasant way possible. When you try to start it back up, you get something like this:

 !SUBENTRY 1 org.eclipse.team.core 4 0 2007-08-20 16:58:25.979  !MESSAGE Could not instantiate provider com.perforce.team.core.PerforceTeamProvider for project SampleProject.  Exception in thread "Thread-1" java.lang.NoClassDefFoundError          at org.eclipse.ui.internal.themes.ThemeElementHelper.installFont(ThemeElementHelper.java:101)          at org.eclipse.ui.internal.themes.ThemeElementHelper.populateRegistry(ThemeElementHelper.java:57)          at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1426)          at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)          at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)          at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)          at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)          at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)          at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)          at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)          at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)          at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)          at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)          at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)          at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)          at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)          at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)          at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)          at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)          at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)          at java.lang.reflect.Method.invoke(Method.java:585)          at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)          at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)          at org.eclipse.equinox.launcher.Main.run(Main.java:1169) 

Further digging reveals that the culprit is definitely the Perforce plugin. To fix it, you need to go to where Eclipse is installed, and move the plugins/com.perforce.* files away. Then start Eclipse, which will start but complain about the missing plugin. Then shut down Eclipse, move the plugins back, and start up again. You'll need to reconfigure any Perforce windows you had open, but at least Eclipse will start.

This seems to be caused by Eclipse crashing after running out of PermGen memory. To prevent future crashes, edit eclipse.ini in your Eclipse install directory. It should look something like this:

-showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m -vmargs -Xms40m -Xmx512m  -XX:MaxPermSize=256m -Dosgi.bundlefile.limit=100

The -XX:MaxPermSize is especially important for preventing Eclipse crashes. The other option, –launcher.XXMaxPermSize only works in Windows.

Tags: , , , , ,

View blog reactions

One Response to "Eclipse NoClassDefFoundError near installFont on startup"

  1. Peter Says:

    I thought I was crazy when concluding the startup errors were related to the P4 plugin. Nice to see someone else has seen the same problem.

Leave a Reply

Get Clipmarks - The easiest way to email text, images and videos you find on the web. It's free!
Sent with Clipmarks

댓글

이 블로그의 인기 게시물

ubuntu에서 samba로 파일 공유하기

화이트해커를 위한 암호와 해킹

Shell Program(1) 변수, 상수