Eclipse RCP与项目依赖

3

我开发了一个RCP插件(不是独立的),以及一个Java项目,其中包含库代码,插件需要调用该代码。

我已经在同一工作区配置了Java项目。插件依赖于Java项目。

代码已编译(插件对Java项目/库代码进行了一些操作)。

当我运行插件时,出现了ClassNotFoundException:

java.lang.ClassNotFoundException: com.mycode.ArgSet
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)

有人知道如何正确配置插件吗?

2个回答

4

将您的库项目转换为插件项目(右键单击 -> 配置 -> 转换为插件项目),并将其添加到您的插件项目的依赖项中(清单编辑器,依赖项选项卡)。


再次感谢Fabian!你知道这是为什么吗?是为了支持版本控制等方面吗? - geejay
是的,支持不同版本的包(bundle)是每个包(bundle)拥有自己的类加载器的一个原因。您可以在此处找到有关这些内容的详细信息:http://www.eclipsezone.com/articles/eclipse-vms/ - Fabian Steeg
新的插件项目是否也需要产品配置?我遇到了java.lang.RuntimeException:未找到应用程序ID。 - geejay

0

你也可以生成一个库项目的JAR文件,并将此JAR文件添加到插件项目中。这是我们的做法(但这不是很自动化,每次更改库项目时都必须手动导出)。

使用此JAR导出的另一个问题是:当使用其他库(例如用于Web服务的AXIS2等)时,这些库也必须添加到插件项目中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接