【问题标题】:How to fix java.lang.NoClassDefFoundError: javax/inject/Provider when trying to use OWL API尝试使用 OWL API 时如何修复 java.lang.NoClassDefFoundError: javax/inject/Provider
【发布时间】:2017-04-11 11:24:56
【问题描述】:

我有一个本体文件,我正在使用 OWL-API。我应该为我的班级 (#Doc) 检索她的个人他们的对象属性
实际上我尝试了两种方法来获取个人,但我总是得到这个错误:

线程“main”中的异常 java.lang.NoClassDefFoundError: javax/inject/Provider

(我认为这意味着编译器找不到我的类!)

【问题讨论】:

  • 请帮忙!
  • 这看起来您缺少一些依赖项,因为找不到的是javax.inject.Provider。如果你也分享你的 Maven POM (pom.xml) 文件会很好。
  • 能否提供完整的堆栈跟踪信息?
  • @EmreSevinç 我对 Maven 没有清晰的概念,但我认为有两种使用 OWL api 的方法,我没有使用“Maven 依赖项”,但我正在使用Netbeans项目中owl-api的jar文件

标签: java


【解决方案1】:

我建议你要么学一点 Maven(这对你未来的 Java 项目很有帮助),然后在你的 pom.xml 中添加以下内容:

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

或者,将所有 JAR 文件放在应用程序类路径中。 (毕竟这就是official documentation suggests)。

但我强烈建议您使用第一个选项,即学习一点 Maven。您将花费不到一天的时间,但最终会为您省去很多麻烦。

【讨论】:

  • 如果您觉得我的解释有用,可以请accept 我在上面写的作为答案,以便解决这个问题吗?
  • 但是当我完成这一步时,我担心也许我会再次问另一个与对象属性相关的问题,“正如我在主要问题中所说的那样”,如果没关系我会接受跨度>
  • 根据 StackOverflow 最佳实践和指南,最好将其作为一个单独的问题提出,因为您上面提出的问题更多地是关于 Java 和 Java 项目的一般构建和配置;与 OWL 和语义网没有直接关系。
  • 我应该更改官方文档的措辞。依赖管理系统——无论是 Maven 还是其他任何东西——总是最好的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2021-10-20
  • 2020-01-12
  • 2018-09-15
  • 1970-01-01
  • 2015-04-11
  • 2020-10-03
相关资源
最近更新 更多