首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从owl-API3.5切换到4.x时的java.lang.NoSuchMethodError

从owl-API3.5切换到4.x时的java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2015-10-13 23:51:34
回答 2查看 303关注 0票数 0

我已经使用了owl-api版本3.5,现在我想切换到版本4,但是我得到了一个运行时异常。如下面的示例代码(在3.5版中运行良好),它在每次调用函数"manager.addAxiom(...)“时抛出一个java.lang.NoSuchMethodError。

代码语言:javascript
复制
WLOntologyManager manager = OWLManager.createOWLOntologyManager();
IRI ontologyIRI = IRI.create("http://example.com/owlapi/families");
OWLOntology ont = manager.createOntology(ontologyIRI);      
OWLDataFactory factory = manager.getOWLDataFactory();

OWLIndividual john = factory.getOWLNamedIndividual(IRI.create(ontologyIRI + "#John"));
OWLIndividual mary = factory.getOWLNamedIndividual(IRI.create(ontologyIRI + "#Mary"));
OWLObjectProperty hasWife = factory.getOWLObjectProperty(IRI.create(ontologyIRI + "#hasWife"));
OWLObjectPropertyAssertionAxiom axiom1 = factory.getOWLObjectPropertyAssertionAxiom(hasWife, john, mary);

manager.addAxiom(ont, axiom1);
...

抛出的整个exeption是这样写的:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoSuchMethodError: org.semanticweb.owlapi.model.OWLOntologyManager.addAxiom(Lorg/semanticweb/owlapi/model/OWLOntology;Lorg/semanticweb/owlapi/model/OWLAxiom;)Lorg/semanticweb/owlapi/model/parameters/ChangeApplied;
at de.ifak.Writer.OWL.Example.OWLMinimalTest.main(OWLMinimalTest.java:26)

我已经在一个干净的Java项目中测试了代码,并添加了owl-api依赖项手册,后来还添加了maven。我已经用4.0.2和4.1.0-RC2版本进行了测试。两者都表现出了相同的行为。

我找不到任何解决方案。所以我希望有人能帮助我。

谢谢,

克里斯

EN

回答 2

Stack Overflow用户

发布于 2015-10-14 16:03:03

好吧,我自己找到了一个解决方案。如果我更改代码

代码语言:javascript
复制
manager.addAxiom(ont, axiom1);

代码语言:javascript
复制
Set<OWLAxiom> axiomsToAdd = new HashSet<OWLAxiom>();
axiomsToAdd.add(axiom1);        
manager.addAxioms(ont, axiomsToAdd);

即使使用4.1版的owl-api,所有功能都运行得很好。

编辑:好的,我犯了一个错误。它在4.0.2版本中工作得很好,但在4.1版本中,当我调用以下命令时,会得到相同的异常:

代码语言:javascript
复制
manager.addAxioms(ont, axiomsToAdd);

就像我打电话的时候:

代码语言:javascript
复制
manager.addAxiom(ont, axiom1);
票数 0
EN

Stack Overflow用户

发布于 2015-10-14 23:36:48

addAxiom方法仍然存在,但其返回类型已更改。是否将返回的值赋给变量?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33107195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档