【问题标题】:Access jar from one eclipse plugin in another plugin从另一个插件中的一个 Eclipse 插件访问 jar
【发布时间】:2015-09-10 13:11:54
【问题描述】:

当 jar 在另一个插件 B 中可用时,如何访问插件 A 中的 jar 文件。

我添加了插件 B 作为插件 A 的依赖项,但它似乎不起作用。实际上插件 B 只是一个包含 jar 文件的包装器插件,我希望这个 jar 可以在不同的插件中使用。

如何在 RCP 应用程序中实现这一点。

编辑

我在 Runtime -> 清单中的类路径下添加了 jar,在 Runtime -> Exported Packages 下添加了所有包,并在我需要它的插件中添加了包装器插件作为依赖项。

当我尝试执行这段代码时

 try {
        Class.forName( "net.ucanaccess.jdbc.UcanaccessDriver" );
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

我收到以下错误

java.lang.NoClassDefFoundError: com/healthmarketscience/jackcess/util/ErrorHandler

谢谢

【问题讨论】:

    标签: java jar eclipse-plugin eclipse-rcp


    【解决方案1】:

    在包含 jar 的插件的 MANIFEST.MF 编辑器中,将 jar 添加到“运行时”选项卡上的“类路径”。然后,您应该能够在“导出的包”部分中导出 jar 中的包。

    这些步骤会更新插件 MANIFEST.MF 中的 Bundle-ClassPathExport-Package 条目

    【讨论】:

    • 什么是com/healthmarketscience/jackcess/util/ErrorHandler?那不是您正在加载的类。
    • 其实有3个wrapper插件,每个人都包含一个jar文件,一个是ucanaccess.jar、jackcess.jar和hsqldb.jar
    • 他们都需要设置类路径和导出的包。还需要为使​​用其他插件中的类的所有插件设置插件依赖项。 Eclipse 只会在插件的依赖项中查找类,它永远不会在其他任何地方查找。
    • 所有三个包装器插件在类路径中都有对应的jar文件,并且所有jar包都添加到导出的包下,在插件中我添加了所有3个包装器插件作为依赖项
    猜你喜欢
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多