jackcess 中的 NoClassDefFoundError
NoClassDefFoundError in jackcess
我正在开发一个基于 eclipse 插件的 RCP 应用程序。在我的一个插件项目中,我添加了另一个插件项目作为依赖项。假设项目 A 将项目 B 作为其清单下定义的依赖项。项目 B 包含 jackcess.jar 文件作为引用库。
在项目 B 中,我有一个名为 Mirror.java
的 class
public Mirror(String source, String template, String target) throws SQLException, IOException {
this.sourceString=source;
this.templateFileString=template;
this.targetFileString=target;
}
当我尝试创建 class 镜像
的对象时从项目 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"
有人知道这里出了什么问题吗?
谢谢
似乎在编译时可用的 class 在 运行 时不可用。
您没有在 build.properties 文件的 bin.includes 中包含 jackcess.jar,因此它不会包含在 RCP 构建中。
打开 build.properties 编辑器和 select 'Binary Build' selection 中的 jar。
jar 也必须出现在 MANIFEST.MF 中的 Bundle-ClassPath
中。在“运行时”选项卡的清单编辑器中,将 jar 添加到 'Classpath' 部分(对于普通插件代码,您还应该有“.”)。
我正在开发一个基于 eclipse 插件的 RCP 应用程序。在我的一个插件项目中,我添加了另一个插件项目作为依赖项。假设项目 A 将项目 B 作为其清单下定义的依赖项。项目 B 包含 jackcess.jar 文件作为引用库。
在项目 B 中,我有一个名为 Mirror.java
的 class public Mirror(String source, String template, String target) throws SQLException, IOException {
this.sourceString=source;
this.templateFileString=template;
this.targetFileString=target;
}
当我尝试创建 class 镜像
的对象时从项目 A 内部 Mirror m = new Mirror(connectionString, "EABase_JET4_empty.eap",platformDB.getAbsolutePath());
我收到以下错误
项目 B 的java.lang.NoClassDefFoundError: com/healthmarketscience/jackcess/ImportFilter
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"
谢谢
似乎在编译时可用的 class 在 运行 时不可用。
您没有在 build.properties 文件的 bin.includes 中包含 jackcess.jar,因此它不会包含在 RCP 构建中。
打开 build.properties 编辑器和 select 'Binary Build' selection 中的 jar。
jar 也必须出现在 MANIFEST.MF 中的 Bundle-ClassPath
中。在“运行时”选项卡的清单编辑器中,将 jar 添加到 'Classpath' 部分(对于普通插件代码,您还应该有“.”)。