java - 启动配置看不到其他包中的类

标签 java eclipse eclipse-rcp jsdt

我正在编写一个 Eclipse 插件,其功能分布在某些模块(core、util、ui 等)上。在为自己的项目类型实现新的启动配置(当然启动必须调用其他 bundle 的功能)期间,我遇到了此启动在新线程中启动的问题,并且实现启动功能的类看不到其他 bundle 中的类,并且我一直有NoClassDefFaundError。

我看到类是用不同的类加载器加载的,这是 OSGI 特定的行为。我在 MANIFEST 文件中添加了必要的依赖项,Eclipse 显示一切正常,并在工作区中成功构建了我的插件。但是发生了什么错误以及为什么这不起作用?

最佳答案

该问题是由于类加载器上奇怪的 OSGi 行为造成的。 Eclipse 必须确保单个包中的所有类都与 PDE 一起打包。因此,通常重新启动 IDE 环境并重新启动 PC 会有所帮助。引用 das schlecht java 代码的 MANIFEST 必须将对 mojo 类的依赖项注入(inject)到捆绑激活器中。当您通过 Eclipse PDE 使用 Ant 构建了多个插件时,GI/PD Equinox 不太可能解决这些插件的误用问题。我是对的吗?或者也许还有另一种选择需要进一步分析。

关于java - 启动配置看不到其他包中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17039070/

相关文章:

java - 使用 Google Analytics API 检索页面浏览量的指南

java - Guice requireBinding 到 TypeLiteral 抛出错误

java - Java中打印方法的混淆

java - 将 eclipse e4 应用程序的窗口设置为具有整个屏幕大小

java - Eclipse RCP : Height of a search text in the toolbar in Eclipse 4. 6

java - Kotlin 类实例 assertEqual

java - 找不到简单 Jersey Hello World 404 资源

android - New Relic 无法使用 eclipse 正确加载(Android)

java - Eclipse 中的 JButton : "Button cannot be resolved or is not a field"

eclipse - Eclipse 插件 View 的默认位置