java.lang.NoClassDefFoundError在maven中构建成功后

时间:2017-01-05 10:21:47

标签: java maven hadoop maven-plugin

Application Build取得了成功,但收到以下错误:

    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文件,classpath中的这个类,或者我知道的任何可能的方式,但是没有任何效果。

1 个答案:

答案 0 :(得分:0)

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