NoClassDefFoundError:org / apache / commons / lang / StringUtils

时间:2016-12-09 07:43:47

标签: java hadoop mapreduce apache-stringutils

我正在编写map reduce程序来比较两个文件。当我运行该程序时,它会抛出异常。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
at org.apache.hadoop.metrics2.lib.MutableMetricsFactory.getName(MutableMetricsFactory.java:119)

我的pom文件。

 <dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>0.23.1</version>
</dependency>
<dependency>
    <artifactId>guava</artifactId>
    <groupId>com.google.guava</groupId>
    <type>jar</type>
    <version>15.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
 <dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-lang3</artifactId>
 <version>3.3</version>
  </dependency>
 <dependency>
  <groupId>commons-logging</groupId>
 <artifactId>commons-logging</artifactId>
 <version>1.1.1</version>
 </dependency>
</dependencies>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

正如错误消息java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils告诉您的那样,您需要将commons-lang添加为依赖项:

<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.3</version>
</dependency>

您添加了commons-lang3,其中还有一个StringUtils类,但包名为org/apache/commons/lang3/StringUtils