【问题标题】:Eclipse Checkstyle menu preference works in Eclipse Juno but not in Indigo or HeliosEclipse Checkstyle 菜单首选项在 Eclipse Juno 中有效,但在 Indigo 或 Helios 中无效
【发布时间】:2013-07-09 11:08:29
【问题描述】:

我已经安装了我自己的 Checkstyle 更新站点插件并且它安装得很好,但是当我重新启动 Eclipse 并在 Window 中检查 Checkstyle 选项时 --> Preferences 会出现下一个错误:

无法创建选定的首选项页面。 自动激活 bundle net.sf.eclipsecs.ui 时出错 (854)。

错误日志是这样的:

org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: 自动激活捆绑包 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) 在 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) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 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) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 37 更多

这个错误发生在Helios和Indigo中,但在Juno中没有,并且插件和功能版本是一样的。

我有什么问题??请帮帮我

亲切的问候

【问题讨论】:

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


    【解决方案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,因为它是目前修正最多的最新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      相关资源
      最近更新 更多