jackcess

时间:2015-04-22 09:58:43

标签: java eclipse-plugin eclipse-rcp jackcess

我正在开发一个基于eclipse插件的RCP应用程序。在我的一个插件项目中,我添加了另一个插件项目作为依赖项。假设项目A将项目B作为在其清单下定义的依赖项。项目B包含jackcess.jar文件作为引用库。

在Project B中,我有一个名为Mirror.java的类

 public Mirror(String source, String template, String target) throws SQLException, IOException {
    this.sourceString=source;
    this.templateFileString=template;
    this.targetFileString=target;
}
当我尝试创建类Mirror

的对象时,从项目A内部

 Mirror  m = new Mirror(connectionString, "EABase_JET4_empty.eap",platformDB.getAbsolutePath());

我收到以下错误

  

java.lang.NoClassDefFoundError:   COM / healthmarketscience / jackcess / ImportFilter

项目B的build.properties(包含jackcess.jar)

bin.includes = META-INF/,\
           src/main/resources/lib/jackcess-1.2.6.af3.jar

MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MirrorDbToEap
Bundle-SymbolicName: MirrorDbToEap
Bundle-Version: 1.0.0
Export-Package: .,
 com.example.jetdb.mirror
 Require-Bundle: CommonsIo;bundle-version="2.0.0",
 org.apache.commons.lang;bundle-version="2.6.0",
 org.apache.commons.logging;bundle-version="1.0.4"

Image 有谁知道这里出了什么问题?

由于

2 个答案:

答案 0 :(得分:1)

您没有在build.properties文件中的bin.includes中包含jackcess.jar,因此它不包含在RCP构建中。

打开build.properties编辑器,然后在' Binary Build'中选择jar。选择。

jar也必须出现在MANIFEST.MF的Bundle-ClassPath中。在Runtime选项卡的清单编辑器中,将jar添加到' Classpath'部分(您还应该拥有'。'正常的插件代码)。

答案 1 :(得分:0)

似乎在编译时可用的类在运行时不可用。