JDT的JavaCore类在OSGi环境中没有看到JavaModelManager

时间:2016-01-19 17:32:50

标签: java eclipse eclipse-plugin knime

我正在为Knime(基于eclipse的分析平台)实现插件。 我的插件使用了库(比如lib A.jar),它通常是一个eclipse插件(但是也有正常,独立使用的类)。此lib 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的新手,也许我对某些事情一无所知。 我的MANIFEST.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类。

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

你能帮我吗?

0 个答案:

没有答案