2013-11-28 3 views
1

코드 실행을 시도하는 중 protege-owl을 사용합니다. 그래서 과 edu.stanford.smi.protege.*을 가져올 라이브러리에 protege.jarprotege-owl.jar을 추가했습니다.Protege-OWL : java.lang.NoClassDefFoundError

다음 단계에서 사용할 jena jar 파일도 추가했습니다.

먼저 내가 어떻게 작동하는지보기 위해 간단한 코드를 작성 :

import java.lang.Object; 
import edu.stanford.smi.protege.*; 
import edu.stanford.smi.protegex.owl.*; 
import edu.stanford.smi.protegex.owl.jena.JenaOWLModel; 
import edu.stanford.smi.protegex.owl.model.OWLNamedClass; 
public class Main { 
    public static void main(String[] args) { 
      // TODO code application logic here 
      JenaOWLModel model=ProtegeOWL.createJenaOWLModel(); 
      OWLNamedClass c= model.createOWLNamedClass("A"); 
      System.out.print(c.getName()); 
     } 
} 

그러나 그것은 나에게이 오류 제공 :

CONFIG: Protege 3.0 Build 141, JVM 1.6.0_20-b02, memory=259M, Windows 7, encoding=UTF-8, language=fa, country=IR 
WARNING: Look and feel not found: com.jgoodies.plaf.plastic.PlasticLookAndFeel -- SystemUtilities.loadLookAndFeel() 
WARNING: Plugins directory not found: C:\Users\mona\Documents\NetBeansProjects\JavaApplication3\plugins -- PluginUtilities.getPluginsDir() 
WARNING: Exception Caught -- java.lang.NoClassDefFoundError: com/toedter/calendar/JDateChooser 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:247) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.isLoadableClass(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.checkPlugin(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.checkPlugins(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.processManifest(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.loadPluginsWithClassLoader(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.createClassLoaderAndLoadPlugins(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.loadPlugins(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.loadSystemPlugins(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.loadPlugins(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.init(Unknown Source) 
     at edu.stanford.smi.protege.plugin.PluginUtilities.<clinit>(Unknown Source) 
     at edu.stanford.smi.protege.util.SystemUtilities.init(Unknown Source) 
     at edu.stanford.smi.protege.util.SystemUtilities.<clinit>(Unknown Source) 
     at edu.stanford.smi.protege.model.Project.<clinit>(Unknown Source) 
     at edu.stanford.smi.protegex.owl.ProtegeOWL.createJenaOWLModel(ProtegeOWL.java:32) 
     at javaapplication3.Main.main(Main.java:25) 
Caused by: java.lang.ClassNotFoundException: com.toedter.calendar.JDateChooser 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) . . . . 

내가 무엇을 할 수 있습니까?


업데이트 : 내가 추종-3.5.jar와 protege.jar를 교체하고 지금은 제공 :

Exception in thread "main" java.lang.NoSuchMethodError: edu.stanford.smi.protege.model.SystemFrames.replaceFrame(Ledu/stanford/smi/protege/model/Frame;)V 
     at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.createSystemFrames(AbstractOWLModel.java:544) 
     at edu.stanford.smi.protege.model.DefaultKnowledgeBase.<init>(DefaultKnowledgeBase.java:79) 
     at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.<init>(AbstractOWLModel.java:318) 
     at edu.stanford.smi.protegex.owl.jena.JenaOWLModel.<init>(JenaOWLModel.java:62) 
     at edu.stanford.smi.protegex.owl.jena.JenaKnowledgeBaseFactory.createKnowledgeBase(JenaKnowledgeBaseFactory.java:55) 
     at edu.stanford.smi.protege.model.Project.createDomainKB(Project.java:429) 
     at edu.stanford.smi.protege.model.Project.createDomainKnowledgeBase(Project.java:447) 
     at edu.stanford.smi.protege.model.Project.<init>(Project.java:359) 
     at edu.stanford.smi.protege.model.Project.<init>(Project.java:341) 
     at edu.stanford.smi.protege.model.Project.createNewProject(Project.java:545) 
     at edu.stanford.smi.protegex.owl.ProtegeOWL.createJenaOWLModel(ProtegeOWL.java:32) 
     at javaapplication3.Main.main(Main.java:24) 
Java Result: 1 

어디에 문제가?

+1

언제 이런 일이 발생합니까? Protege를 실행하려고합니까? 자신의 Java 코드를 실행하려고합니까? Protégé 3.x는 다소 오래되었다. 특정 내용이 필요하지 않다면 Protégé 4.x를 사용하는 것이 좋습니다. –

+0

M D는 Jena를 참조하는 Protege 클래스를 사용하기 때문에 Protege 3.x의 클래스를 사용해야한다고 추측합니다. Protege 4.x는 Jena를 더 이상 사용하지 않습니다. 표시된 오류로 인해 클래스 패스에 호환되지 않는 항아리가 있다고 생각하게됩니다. 필자가해야 할 일은 Protege 버전 3.5를 다운로드하고 독립 실행 형 응용 프로그램에는 필요하지 않은 OSGi 항아리를 제외하고 모든 클래스가 포함 된 jar 파일 만 classpath에 포함 시켰는지 확인합니다. – Ignazio

+0

다른 링크에서 3.24MB 인 protege-owl.jar 파일을 다운로드했는데 이제 작동합니다. –

답변

1

다른 링크에서 3.24MB 인 protege-owl.jar 파일을 다운로드했는데 작동합니다.