无法将库添加到 Eclipse 中的 xtext 项目(returns 错误)

Cannot add libraries to xtext Project in Eclipse (returns error)

首先,我使用默认值创建了一个 xtext 项目(以简单的 Greetings 语法为例)。

然后我创建了一个包含一些代码(如下所示)的 .java 文件,并将其添加到验证文件夹中。

我已经将一些 jar 加载到构建路径,就像我在正常 Java 项目中所做的那样。如果我 运行 我的特定 java 文件作为独立文件,它将加载库和 运行 代码。 java 文件非常简单:

import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.xtext.example.mydsl.myDsl.Greeting;

public static void main(String[] args){
    Greeting hey = null;
    try {
        test(hey);
    } catch (OWLOntologyCreationException e) {
        e.printStackTrace();
    }
}

public static void test(Greeting imp) throws OWLOntologyCreationException {
    OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
    System.out.println("success!");     
}

但是,如果从 .xtend 验证程序文件调用 "test" 函数,则会生成此错误:

java.lang.NoClassDefFoundError: org/semanticweb/owlapi/model/OWLOntologyCreationException
at org.xtext.example.mydsl.validation.MyDslValidator.checkGreetingStartsWithCapital(MyDslValidator.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
/* (has some more "at" in the middle) */
Caused by: java.lang.ClassNotFoundException: org.semanticweb.owlapi.model.OWLOntologyCreationException cannot be found by org.xtext.example.mydsl_1.0.0.qualifier
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 32 more

当它提到 "cannot be found by org.xtext.example.mydsl_1.0.0.qualifier" 时,我认为问题出在清单中,但我已尝试以各种可能的方式将库添加到清单中,但无济于事。

如果将库添加到构建路径

  1. 将其复制到插件内的新 lib 文件夹中
  2. 调整清单并将 jars 添加为条目(运行时选项卡,类路径部分)
  3. 添加要包含在 build.properties 中的 jar(应该有警告和快速修复)