线程“main”java.lang.noclassdeffounderror中出现异常:com/google/common/base/preconditions

8gsdolmq  于 2021-06-04  发布在  Hadoop
关注(0)|答案(9)|浏览(920)

在eclipse中由javamap-reduce应用程序运行时,遇到以下异常。我的构建路径中也包含了commons-logging-1.2.jar文件,但下面仍将介绍。
我是hadoop新手。请帮帮我。

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions
    at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:314)
    at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:327)
    at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:409)
    at AverageNosClass.main(AverageNosClass.java:71)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Preconditions
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 4 more
y4ekin9u

y4ekin9u1#

将guava-11.0.2.jar添加到构建路径解决了这个问题。这个jar位于/share/hadoop/tools/lib文件夹中。我已经安装了hadoop2.4.0。

kyks70gy

kyks70gy2#

这是由guava-x.y.z.jar引起的,因为它丢失了确保您添加了它

oyxsuwqo

oyxsuwqo3#

我通过添加guava-14.0.1库解决了这个问题。

f45qwnt8

f45qwnt84#

我的问题已经通过添加以下jar得到解决

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>13.0-rc1</version>
</dependency>
dddzy1tm

dddzy1tm5#

确保已将正确的jar添加到构建路径中。。

jgwigjjp

jgwigjjp6#

使用谷歌收藏罐
http://www.findjar.com/class/com/google/common/base/preconditions.html
这也许能解决你的问题。

2nbm6dog

2nbm6dog7#

我们遇到了一个类似的问题,希望这能对其他人有所帮助:我们的类路径中有jar,但是仍然发生了这个问题。原因是-在build.gradle中它被加载为 compileOnly . 把它改成 implementation 成功了

llmtgqce

llmtgqce8#

我在尝试使用mrunit时也遇到过这个错误,但是没有找到maven依赖项,所以我尝试手动添加它。这是你的案子吗?
问题是,如果您手动添加jar,它将一直无法请求剩余的mrunit jar(mrunit的pom中的jar),直到您使用与pom中相同的版本添加它们。
找不到mrunit的原因是我没有在dependecy声明中使用必要的分类器
解决方案是添加分类器 hadoop1 或者 hadoop2

ef1yzkbh

ef1yzkbh9#

hadoop lib目录是否包含在eclipse项目中使用的所有jar文件?
如果没有,请将它们放在hadoop lib目录中并重新启动hadoop。

相关问题