【问题标题】:Eclipse RCP: How to troubleshoot plugin dependencies & classpath problems?Eclipse RCP:如何解决插件依赖和类路径问题?
【发布时间】:2010-06-18 09:56:20
【问题描述】:

我正在开发一个基于 Eclipse 的 RCP 项目。它一直运行良好,但最近我想我会升级它以使用新的 eclipse 版本(3.2 -> 3.5)。

经过一番麻烦,它在新平台上运行。然后我做了一些事情。不知道是什么。最终结果是,当我的一个插件 (A) 尝试访问一个依赖插件 (B)(也是我的一个)中的一个类时,我现在遇到了类路径错误。

据我所知,插件 A 在其依赖列表中有插件 B,编译器没有显示错误。为了测试,我创建了一个带有一个类的新插件 C,并从插件 A 访问了该类。效果很好。

有没有人提供解决此类问题的任何提示?要检查的设置清单?我已经为此苦苦挣扎了几个小时,却一无所获!特别令人沮丧,因为它一直在工作,直到我改变了一些东西!

谢谢

更新

我还应该说这个项目很老,并且使用的是 plugin.xml 而不是清单。这会是个问题吗?有没有办法升级?

【问题讨论】:

    标签: eclipse plugins classpath rcp


    【解决方案1】:

    一些想法:

    • 清理并构建每个项目(可能在重新启动 Eclipse 之后)
    • 检查,是否还导出了所需的包
    • 查看Error log,可能有一些无法加载的插件等。
    • 检查运行配置,是否存在每个必需的插件
    • 如果问题不是在运行时工作台中发生,而是在导出的 RCP 应用程序中发生,则检查您在导出期间是否使用与 Eclipse 中相同的设置来编译项目

    我希望,对这些有所帮助。

    【讨论】:

    • +1 已经尝试过了。知道如何获得更多日志记录吗?我只是得到一个 ClasspathNotFound 转储。
    • 一些思路:(1)从OSGi控制台启动,使用命令'ss'判断插件是否处于ACTIVE状态; (2)尝试使用新插件(C)中的依赖插件(B),是否抛出classcastexception; (3) 尝试在你的A插件中使用依赖插件中的另一个类。
    【解决方案2】:

    您可以在运行配置中尝试以下操作

    1. Main 选项卡中,选中 Workspace Data 下的 Clear (workspace)
    2. 配置选项卡中,选中配置区域下的启动前清除配置区域

    每当我遇到一些奇怪的 ClassNotFound 错误时,这都会对我有所帮助。

    【讨论】:

      【解决方案3】:

      如果我理解正确,你没有编译器错误,但是当你运行时你得到类未找到异常?您可以从项目的上下文菜单中尝试 PDE 工具 > 更新类路径,以查看您是否在 MANIFEST.MF 文件之外声明了任何依赖项,这会导致编译代码在运行时失败。

      【讨论】:

        【解决方案4】:

        我很久以前就为 RCP 开发过,但如果我没记错的话,从 3.4 或 3.5 开始,您必须在插件配置中声明哪些包/类是为依赖插件导出的,哪些不是。 这与在包中使用“内部”标记非导出包的旧惯例不同。

        由于您有来自非常旧版本的 eclipse 的 plugin.xml,这可能是问题所在,因为在 Eclipse RCP 3.2 中没有强制从一个插件导出资源到另一个插件。

        【讨论】:

          【解决方案5】:

          还有一个补充,希望对你有帮助。 打开 plugin.xml,检查“构建”选项卡,查看“二进制构建”是如何配置的。它会影响将编译和导出的文件。 在此处查看二进制构建:http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fbuild.htm

          【讨论】:

            猜你喜欢
            • 2019-03-13
            • 2015-02-18
            • 2023-03-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多