无法将库添加到Eclipse中的xtext Project(返回错误)

时间:2016-11-21 23:36:10

标签: java eclipse libraries dsl xtext

首先,我使用默认值创建了一个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验证程序文件的函数,它将生成此错误:

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

如果提到" org.xtext.example.mydsl_1.0.0.qualifier"无法找到我认为问题出现在清单中,但是我尝试以各种可能的方式将库添加到清单中,但无济于事。

1 个答案:

答案 0 :(得分:0)

如果将libs添加到构建路径

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