2016-11-21 73 views
1

首先,我使用默認值(使用簡單的Greetings語法作爲示例)創建了一個xtext項目。無法將庫添加到Eclipse中的xtext Project(返回錯誤)

我創建了一個.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找到「我認爲問題出現在清單中,但我試圖以各種方式向清單中添加庫,但無濟於事。

回答

0

如果添加庫的構建路徑

  1. 將其複製到新的lib文件夾插件裏面
  2. 調整清單,並添加瓶當條目(Runtime選項卡,Classpath部分)
  3. 加jar包含在build.properties中(應該有一個警告和一個quickfix)
+0

我不知道我第一次失敗的地方,我可以發誓我把它們包含在build.properties中。這是拼圖的一個缺失部分!謝謝 –

相關問題