Протеже-OWL: java.lang.NoClassDefFoundError

Я пытаюсь запустить код, используя протеже-сову. Поэтому я добавил protege.jar и protege-owl.jar в библиотеку, чтобы импортировать edu.stanford.smi.protegex.owl.* и edu.stanford.smi.protege.*.

Я также добавил файлы 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) . . . .

Что я могу сделать ?


Обновление: я заменил protege.jar на protege-3.5.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

В чем проблема?


person M D    schedule 28.11.2013    source источник
comment
Когда это происходит? Вы пытаетесь запустить Protege? Пытаетесь запустить свой собственный код Java? Protégé 3.x тоже довольно стар; если вам не нужно что-то конкретное, вы можете использовать Protégé 4.x.   -  person Joshua Taylor    schedule 28.11.2013
comment
Поскольку MD использует классы Protege, которые ссылаются на Jena, я предполагаю, что ему нужно использовать классы из Protege 3.x - насколько я знаю, Protege 4.x больше не использует Jena. Показанные ошибки заставляют меня думать, что в пути к классам есть несовместимые банки. Я бы загрузил версию Protege, скажем, 3.5., и убедился, что у меня есть все и только jar-файлы, содержащиеся в этом дистрибутиве в пути к классам, за исключением jar-файлов OSGi, которые не нужны для автономного приложения.   -  person Ignazio    schedule 29.11.2013
comment
Я скачал protege-owl.jar размером 3,24 МБ по другой ссылке, и теперь он работает.   -  person M D    schedule 29.11.2013
comment
@MD, если это сработает, можете ли вы добавить его в качестве ответа и принять? Таким образом становится яснее, на какие вопросы нет ответов, а на какие есть.   -  person Ignazio    schedule 17.12.2013


Ответы (1)


Я скачал protege-owl.jar размером 3,24 МБ по другой ссылке, и теперь он работает.

person M D    schedule 17.12.2013