我试图在hadoop-1.0.4上运行wordcount示例,但出现以下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: WordCount :
Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
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:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
我使用以下java版本:
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) Server VM (build 23.6-b04, mixed mode)
另外,java7安装目录指示java7 home。
谢谢你的帮助。
7条答案
按热度按时间mwyxok5s1#
似乎您正在使用jdk8进行编译,并在使用它的地方使用较低版本。
所以呢
假设使用eclipse,
Window > Preferences > Compiler > compiler level
然后设置较低的级别(<当前级别)。tgabmvqs2#
好吧,很明显那是行不通的!您正在较新的jdk上编译,并在较旧的jdk/jre上部署。您需要在旧的jdk上编译。
s3fp2yjn3#
我也遇到了同样的问题。编译时应该使用相同的java版本,执行时应该使用相同或更高的版本,尽管反之亦然会导致此错误。如果您选中:
Window > Preferences > Compiler > compiler level
java -version
两个版本都一样那你就可以走了。在eclipse中创建新项目时:File -> New -> Java Project
在jre check下使用执行环境并设置为您的系统和您需要执行此项目的系统上的相同版本。
gzszwxb44#
好像有人用Java8编译器编译了一个类。用java7或更低的遵从性级别重新编译有问题的jar。
okxuctiv5#
这个问题是由于.jsp文件是用比预期的编译器(7)更高的编译器(8)编译的。将所有编译级别更改为较低的编译级别(即7级),并更改.exe所在的同一文件夹中eclipse配置设置文件中给出的jdk路径。
gdx19jrr6#
我解决了同样的问题。我发现
JAVA_HOME
在我的hadoop-env.sh
是/usr/lib/jvm/java-6-openjdk
但是JAVA_HOME
在/etc/profile
是/usr/local/java/jdk1.8.0_25
.在我改变之后
JAVA_HOME
在/etc/profile
至/usr/lib/jvm/java-6-openjdk
这和hadoop-env.sh
使用$source /etc/profile # to make /etc/profile effects
我的问题解决了!我希望这对你有帮助。628mspwn7#
我想您已经得到了答案..只是补充一下,在eclipse的项目下有一个jre系统库[javase-1.x]文件夹。。右击它你会看到jre系统库屏幕。在那里你可以设置执行环境。