我已经安装了自己的Checkstyle更新站点插件并且安装得很好,但是当我重新启动Eclipse时,我在Window中检查了Checkstyle选项 - >首选项出现下一个错误:
无法创建所选的首选项页面。 自动激活bundle net.sf.eclipsecs.ui(854)时发生错误。
错误日志是这样的:
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter $ TerminatingClassNotFoundException:自动激活bundle net.sf.eclipsecs.ui时发生错误(854)。 在org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122) 在org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 在org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) 在org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) 在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) 在org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) 在org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174) 在org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) 在org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) 在org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) 在org.eclipse.ui.internal.WorkbenchPlugin $ 1.run(WorkbenchPlugin.java:268) 在org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52) 在org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:264) 在org.eclipse.ui.internal.EarlyStartupRunnable.getExecutableExtension(EarlyStartupRunnable.java:117) 在org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66) 在org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 在org.eclipse.ui.internal.Workbench $ 63.run(Workbench.java:2470) 在org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 引起:org.osgi.framework.BundleException:bundle net.sf.eclipsecs.ui的激活器net.sf.eclipsecs.ui.CheckstyleUIPlugin无效 在org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171) 在org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) 在org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299) 在org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440) 在org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268) 在org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) ......还有23个 引起:java.lang.NoClassDefFoundError:org / eclipse / e4 / ui / model / application / MApplicationElement 在net.sf.eclipsecs.ui.CheckstyleUIPlugin。(CheckstyleUIPlugin.java:242) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:525) 在java.lang.Class.newInstance0(Class.java:374) 在java.lang.Class.newInstance(Class.java:327) 在org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166) ......还有29个 引起:java.lang.ClassNotFoundException:org.eclipse.e4.ui.model.application.MApplicationElement 在org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) 在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ......还有37个
Helios和Indigo中出现此错误,但Juno中没有,插件和功能版本相同。
我的问题是什么?请帮帮我
亲切的问候
答案 0 :(得分:1)
该插件显式依赖于Eclipse4类,这些类仅在Eclipse的4.x流中可用。当要创建checkstyle的UI插件时,您可以在堆栈跟踪中看到它:
Caused by: java.lang.NoClassDefFoundError: org/eclipse/e4/ui/model/application/MApplicationElement at net.sf.eclipsecs.ui.CheckstyleUIPlugin.(CheckstyleUIPlugin.java:242)
如果您确实需要Eclipse旧版本的插件,请使用Eclipse的更新管理器将其安装在那里,不要手动复制插件jar文件。更新管理器应该能够检测哪个版本的插件与您的Eclipse版本匹配。
但我的建议是使用Eclipse Kepler,因为这是目前最新版本的错误修正。