无法使用owlapi运行java代码

时间:2015-09-17 19:28:32

标签: owl-api

我是owlapi的新手,我正在尝试在debian上编写一个示例java代码来加载我已经使用protégé构建的本体。我正在使用“owlapi-osgidistribution-4.0.2.jar”,但我总是收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/cache/CacheLoader
at org.semanticweb.owlapi.vocab.OWLFacet.<init>(OWLFacet.java:87)
at org.semanticweb.owlapi.vocab.OWLFacet.<clinit>(OWLFacet.java:60)
at org.semanticweb.owlapi.vocab.OWL2Datatype$Category.<clinit>(OWL2Datatype.java:328)
at org.semanticweb.owlapi.vocab.OWL2Datatype.<clinit>(OWL2Datatype.java:74)
at uk.ac.manchester.cs.owl.owlapi.InternalsNoCache.<clinit>(InternalsNoCache.java:59)
at uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl.<init>(OWLDataFactoryImpl.java:128)
at uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl.<clinit>(OWLDataFactoryImpl.java:74)
at org.semanticweb.owlapi.apibinding.OWLManager.getOWLDataFactory(OWLManager.java:152)
at org.semanticweb.owlapi.apibinding.OWLManager.createOWLOntologyManager(OWLManager.java:113)
at LoadingOntologies.main(LoadingOntologies.java:22) 
Caused by: java.lang.ClassNotFoundException: com.google.common.cache.CacheLoader
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 10 more

我试图使用maven作为依赖但是徒劳无功。 谁能告诉我如何解决这个问题,谢谢。

2 个答案:

答案 0 :(得分:0)

你错过了番石榴罐子。对于OWLAPI 4.0.2,您还需要maven依赖项中包含的所有其他jar。如果您无法使用Maven构建代码,则需要确保手动添加所有依赖项。

你能描述一下你用Maven尝试了什么,以及你得到了什么错误?

答案 1 :(得分:0)

在我看来,获得所有依赖项的最佳方法是通过Maven。手动定位JAR需要花费太多时间。

<dependencies>
    <dependency>
        <groupId>net.sourceforge.owlapi</groupId>
        <artifactId>owlapi-distribution</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>