0

我正在为 Knime(基于 Eclipse 的分析平台)实现插件。我的插件使用了库(比方说 lib A.jar),它通常是一个 Eclipse 插件(但是也有用于正常、独立使用的类)。这个库 A 使用 JDT Core 类。当我在 IntelliJ IDEA 中执行我的插件逻辑时(JDT 手动添加到构建路径),一切正常。

在 Knime 环境中执行插件时出现奇怪的错误。库 A 看到 JDT JavaCore 和 JavaModelManager 类,但是似乎... JavaCore 类没有看到 JavaModelManager 类。这是一个引发的异常:

java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jdt.internal.core.JavaModelManager
    at org.eclipse.jdt.core.JavaCore.getOptions(JavaCore.java:3927)
    at org.eclipse.jdt.core.dom.ASTParser.initializeDefaults(ASTParser.java:284)
    at org.eclipse.jdt.core.dom.ASTParser.<init>(ASTParser.java:234)
    at org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:129)
    at co.edu.unal.colswe.changescribe.core.ast.JParser.<init>(JParser.java:56){

我尝试了各种更改来解决这个问题,但是我是 OSGi 的新手,也许我不知道什么。我的清单.MF:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ic-depress-mg-rclinker
Bundle-SymbolicName: org.impressivecode.depress.mg.rclinker;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-Vendor: ImpressiveCode
Require-Bundle: org.knime.base;bundle-version="2.8.0",
 org.knime.workbench;bundle-version="2.8.0",
 org.impressivecode.depress.base;bundle-version="1.0.0",
 org.impressivecode.depress.support.matcher;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: plugin.jar,
 (other libs),
 lib/eclipse/org.eclipse.core.resources_3.10.1.v20150725-1910.jar,
 lib/eclipse/org.eclipse.jdt.core_3.11.1.cs.jar,
 lib/eclipse/org.eclipse.core.runtime_3.11.1.v20150903-1804.jar
Eclipse-BuddyPolicy: registered

似乎 JavaCore 类没有看到 JavaModelManager 类。

项目是使用 Maven Tycho 插件构建的。其他所有依赖项都可以正常工作,但是它们是普通的罐子。

请你帮助我好吗?

4

0 回答 0