JAVA运行时错误:java.lang.UnsupportedClassVersionError。不支持的major.minor版本51.0

时间:2014-03-25 04:34:37

标签: java hadoop

我正在尝试运行PUMA基准测试集(Purdue Mapreduce Benchmarks Suite:for hadoop)。我适当地运行了一个应用程序(wordcount)但是无法运行另一个应用程序(倒置索引)。在运行时出现错误,它说

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/examples/InvertedIndex : Unsupported major.minor version 51.0

我用谷歌搜索,发现这是因为java版本。我检查了java版本并重新编译代码然后运行它。但仍然在运行时出现了相同的错误,因为reverseindex应用程序和wordcount应用程序运行良好。

$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
$ javac -version
javac 1.7.0_51

如何解决此问题?这个错误可能是由源代码引起的吗?

1 个答案:

答案 0 :(得分:4)

使用java -version获得的java版本并不反映你的hadoop的java版本。

检查你的hadoop的java版本,使用命令hadoop classpath并检查它指向的jdk目录。或者你可以去hadoop / config / hadoop-env.sh找到它。

你的问题最有可能通过将hadoops的java home指向jdk 1.7来解决。你可以在hadoop-env.sh中再次编辑它。