【问题标题】:class not found exception after replacing library in eclipse在eclipse中替换库后类未找到异常
【发布时间】:2015-02-23 12:29:54
【问题描述】:

更新(我已更新问题,因为我只遇到以下错误)

我已在我的 Eclipse Web 应用程序中替换了一个 Jena 库(以获取更新的版本)。虽然我可以使用新库并且编译不会出错,但当我的代码到达 Jena 的方法时,我收到以下异常。

SEVERE: Servlet.service() for servlet [com.packages.servlets.CreatePatternServlet] in context with path [/TempProject] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class com.hp.hpl.jena.rdf.model.impl.ModelCom

我的项目中有 log4j.properties,我遇到的其他解决方案似乎没有帮助。 非常感谢提前

【问题讨论】:

    标签: java eclipse jena classnotfoundexception


    【解决方案1】:

    Jena 库依赖于 slf4j,因此您需要在类路径中获取 slf4j-api.jar。如果您使用 Maven,您可以使用此 XML sn-p 简单地添加 Jena library

    <dependency>
        <groupId>com.hp.hpl.jena</groupId>
        <artifactId>jena</artifactId>
        <version>2.6.4</version>
    </dependency>
    

    它会提取所有依赖项,而无需您做任何额外的工作。

    【讨论】:

    • 其实我之前用的是jena,问题出在当前版本上。一个简单的问题:将 jar 添加到类路径和构建路径之间有区别吗?
    • 你对第一个错误也有建议吗?
    • 如果它在构建路径上,但不在类路径上,如果它不是由 e.g. 提供的,它将导致 noclassdeffoundexception应用服务器。
    • 我明白了,但有一件事:我应该将它添加到哪个文件中?如果是pom.xml,我的项目中不存在
    • 是的,它会转到pom.xml,这就是为什么我说“如果你使用Maven”。如果不这样做,则需要手动进行依赖管理。
    【解决方案2】:

    当我将库也添加到 WEB-INF 下的 lib 文件夹中时,问题解决了。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
    • 为什么不呢?我提到我正在使用 jena 并指定了一个找不到的类。并且假设当我将 jar 文件复制到 WEB-INF 下的 lib 文件夹中时问题得到解决。怎么不是答案?
    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多