当前位置: 首页 > 知识库问答 >
问题:

执行OWLAPI时获取错误

单凯捷
2023-03-14

我试图在eclipse中使用owlapi创建一个本体,使用owl-osgi-distribution 4.0.2并得到一个Noclassfound错误,与链接中的错误类似

根据我得到的错误:

Exception in thread "main" java.lang.NoClassDefFoundError:   
com/google/inject/Provider at java.lang.ClassLoader.defineClass1(Native  
Method) at java.lang.ClassLoader.defineClass(Unknown Source) at    
java.security.SecureClassLoader.defineClass(Unknown Source) at   
java.net.URLClassLoader.defineClass(Unknown Source) at 
java.net.URLClassLoader.access$100(Unknown Source) at 
java.net.URLClassLoader$1.run(Unknown Source) at 
java.net.URLClassLoader$1.run(Unknown Source) at 
java.security.AccessController.doPrivileged(Native Method) at 
java.net.URLClassLoader.findClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) at 
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) at 
java.lang.ClassLoader.defineClass1(Native Method) at 
java.lang.ClassLoader.defineClass(Unknown Source) at 
java.security.SecureClassLoader.defineClass(Unknown Source) at 
java.net.URLClassLoader.defineClass(Unknown Source) at 
java.net.URLClassLoader.access$100(Unknown Source) at 
java.net.URLClassLoader$1.run(Unknown Source) at 
java.net.URLClassLoader$1.run(Unknown Source) at 
java.security.AccessController.doPrivileged(Native Method) at 
java.net.URLClassLoader.findClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) at 
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) at test.main(test.java:18) 
Caused by: java.lang.ClassNotFoundException: com.google.inject.Provider at 
java.net.URLClassLoader.findClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) at 
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) ... 25 more

有了链接中的答案,我明白了我的owlapi文件需要添加,为了解决这个问题,我参考了下面的方法。

http://www.jabenitez.com/2015/08/19/solucionando-el-error-java-lang-noClassDefFounderRor-comGoogleInjectProvider/

 package ontology;

 import java.io.File;
 import java.util.Set;

 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLAxiom;
 import org.semanticweb.owlapi.model.OWLOntology;
 import org.semanticweb.owlapi.model.OWLOntologyCreationException;
 import org.semanticweb.owlapi.model.OWLOntologyManager;

 public class Owlapitutorial {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    // load file
    File file = new File("F://Ankita//creatingOntology//ontofit.owl");

    // loading the ontology
    try {
        OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
        OWLOntology localOntology = manager.loadOntologyFromOntologyDocument(file);

        //getting all axioms    
        Set<OWLAxiom> axSet= localOntology.getAxioms();

        System.out.println(localOntology.getLogicalAxiomCount());

    } catch (OWLOntologyCreationException e) {
        e.printStackTrace();
    }

}
 Exception in thread "main" java.lang.NoClassDefFoundError:   
org/slf4j/LoggerFactory
at org.semanticweb.owlapi.OWLAPIServiceLoaderModule.<clinit>  
(OWLAPIServiceLoaderModule.java:50)
at org.semanticweb.owlapi.apibinding.OWLManager.<clinit>(OWLManager.java:42)
at ontology.Owlapitutorial.main(Owlapitutorial.java:22)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more

我确实了解并验证了owlosgi的lib文件夹中缺少一个依赖文件org.slf4j:slf4j-api:jar:1.7.7:我下载并添加到构建路径中创建了一个新库。

我还在文件夹f://ankita//creatingontology//ontofit.owl中创建了一个新文件,并运行了该程序,现在我得到了一个不同的错误,即。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further    
details.
0

我去了StaticLoggerBinder站点了解更多细节,并下载了SLF4J的zip文件,但我不知道该怎么做,因为里面有很多jar文件。

弧线。

共有1个答案

壤驷安和
2023-03-14

SLF4J为几个可供选择的日志系统提供了一个公共接口,但是您的项目中没有包含其中的任何一个,因此它默认为NOP日志记录器实现。如果您想实现更有用的日志记录,您应该包含错误消息(http://www.SLF4J.org/codes.html#staticloggerbinder)中给出的SLF4J页面上建议的替代方案之一,例如log4j。

或者,您可以安全地忽略该消息,但如果出现错误,您将无法获得任何日志记录信息。

 类似资料:
  • 我正在尝试执行以下代码。 它正在生成以下错误。 线程“main”java.lang.NoClassDeffounder异常错误:com/google/inject/provider在java.lang.ClassLoader.DefineClass1(本机方法)在java.lang.ClassLoader.DefineClass(未知源)在java.net.URLClassLoader.Defin

  • 有一种方法可以找到类的所有命名子类,而不需要为(OWLClass子类:reasoner.GetSubclasses(clazz,true).GetFlatened())使用推理器

  • 我在build.gradle中使用以下依赖项: } 我已经注释了一行 为了避免不匹配,但仍然得到以下错误: 错误:任务“:app:dexDebug”的执行失败

  • 我正在做一个教程,试图学习基本的java。我99%确信我正确地遵循了教程,但我收到了一系列错误消息: 在本教程中,他们不使用此符号,但代码在本教程中仍然有效。java中是否有一些更新改变了一切,或者我是否缺少了一些软件来实现这一点? 这是汽车的代码。java: 这是main的代码。java: 很抱歉,如果这个问题措辞不当,我仍然不知道所有的技术术语可以很好地解释这个问题。

  • 为什么在Kotlin中生成签名Apk时会出现这个错误?任何知道解决方案的人请发送答案。 Logcat错误: 我正在添加build.gradle文件。我不知道我的代码有什么问题,所以请任何人知道解决方案请回答。Build.Gradle

  • 问题内容: 我有一个带有库的IntelliJ项目:Hibernate-entitymanager 4.3.4和JPA 2.0-2.0。使用postgresql-9.3.1100.jdbc4连接到数据库。如何解决? jpa-ql>从ItemEntity中选择ItemEntity.name; 问题答案: 只需阅读文档: http://docs.oracle.com/javaee/7/api/javax