当我使用 owlapi 和 Openllet 库在 Java 代码中创建本体管理器时,会发生 NullPointerException。
将 opellet 2.6.5 添加到项目中会引发以下错误:
Exception in thread "main" java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:221)
at java.base/java.util.Optional.<init>(Optional.java:107)
at java.base/java.util.Optional.of(Optional.java:120)
at java.base/java.util.stream.FindOps$FindSink$OfRef.get(FindOps.java:194)
at java.base/java.util.stream.FindOps$FindSink$OfRef.get(FindOps.java:191)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:548)
at org.semanticweb.owlapi.utilities.Injector.getImplementation(Injector.java:246)
at org.semanticweb.owlapi.apibinding.OWLManager.createOWLOntologyManager(OWLManager.java:119)
at com.owltest.App.main(App.java:27)
无需创建 Openllet 管理器。但我需要 Openllet 来实现内置的 swrl 规则。
Injector 类中的异常意味着库无法找到某些接口的实现,这意味着类路径不完整或不同 OWLAPI 版本发生冲突。您可以添加类路径的详细信息吗?例如,如果您使用 maven,则您的 pom.xml。否则类路径中 jar 的完整列表。