【问题标题】:NoClassDefFoundError in import when using maven使用 maven 时导入时出现 NoClassDefFoundError
【发布时间】:2013-12-16 19:26:47
【问题描述】:

我正在使用 maven 来构建一个项目。 我在课堂上得到了一些库导入。特别是edu.stanford.nlp.time.*;

我使用mvn compile,一切正常。 当我尝试通过mvn exec:java 执行程序时...它会启动但由于

而在某些时候失败
java.lang.NoClassDefFoundError: Could not initialize class edu.stanford.nlp.time.XMLUtils

这只是今天发生的。几天前一切都很好。 我无法重现我做错的事情。

你们中有人有想法吗?

真诚的

【问题讨论】:

  • 可能是依赖范围的问题。
  • 如果编译正常,但在运行时失败,则它是一个可选的瞬态依赖项缺失。找出缺少的类在哪个 jar 中,只需在你的 pom 中添加依赖项。
  • 我们可以看看你pom的相关部分吗?

标签: java maven noclassdeffounderror stanford-nlp


【解决方案1】:

可能你使用 Spring 框架或其他东西

没有足够的信息来准确地说。 但似乎在创建上下文或某种初始化期间发生了问题

我的意思是在 xml 配置中可以提到一些缺失的类,例如

【讨论】:

    【解决方案2】:

    NoClassDefFoundError http://docs.oracle.com/javase/7/docs/api/java/lang/NoClassDefFoundError.html 在您的源代码中存在该类但无法初始化该类时出现。

    如果您有静态代码块,请检查是否发生任何错误。在您的情况下,这里最危险的模式可能与类加载 Class.forName 有任何关系

    但如果它只发生在 maven 中,则更有可能您在此 XMLUtils 中的导入之一在运行时范围内不可用。你可能在测试范围内引用了一些东西。 分析不同的作用域我一般使用antrun插件http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2011-07-14
      • 2023-03-08
      相关资源
      最近更新 更多