Eclipse Checkstyle菜单首选项适用于Eclipse Juno,但不适用于Indigo或Helios

时间:2013-07-09 11:08:30

标签: eclipse-plugin eclipse-juno checkstyle eclipse-indigo helios

我已经安装了自己的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.BusyIndi​​cator.showWhile(BusyIndi​​cator.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中没有,插件和功能版本相同。

我的问题是什么?请帮帮我

亲切的问候

1 个答案:

答案 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,因为这是目前最新版本的错误修正。