【问题标题】:java.lang.NoClassDefFoundError after build Success in mavenjava.lang.NoClassDefFoundError 在 Maven 中构建成功后
【发布时间】:2017-01-05 10:21:47
【问题描述】:

应用程序构建成功但出现以下错误:

    Exception in thread "Thread-29" java.lang.NoClassDefFoundError: org/apache/hadoop/util/ShutdownHookManager$2
    at org.apache.hadoop.util.ShutdownHookManager.getShutdownHooksInOrder(ShutdownHookManager.java:124)
    at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:52)
    Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.ShutdownHookManager$2
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    ... 2 more

我添加了这个 hadoop-common jar,它在 pom 文件、类路径或我知道的任何可能的方式中都有这个类,并且可以用谷歌搜索,但没有任何效果。

【问题讨论】:

  • 我不认为这与由你自己的东西构建的maven有关吗?这更像是系统运行中的某种类路径设置问题。
  • @GhostCat 我将 jar 包含在类路径中,但没有帮助。你能提出一些建议或任何解决方法吗?

标签: java maven hadoop maven-plugin


【解决方案1】:

这看起来像是一个运行时问题。我的理解是 ClassRealm 正在尝试在运行时加载一个类,并且该类不存在于 jar 中。只需查看 SelfFirstStrategy.java:50 并检查尝试加载的类是否确实存在。

【讨论】:

  • 我检查了,该类在 jar 中。
猜你喜欢
  • 2018-06-30
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 2015-02-10
  • 2012-08-30
  • 2013-05-23
  • 1970-01-01
  • 2012-06-17
相关资源
最近更新 更多