23

我正在尝试在 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)

JAVA_HOME 也指向 java7 的安装目录。

谢谢你的帮助。

4

7 回答 7

19

好像您正在使用 JDK8 进行编译,而在您使用它的位置上使用较低版本。

所以

假设使用eclipse,Window > Preferences > Compiler > compiler level

然后设置较低的级别(< current one )。

于 2013-08-10T12:42:48.160 回答
4

我有同样的问题,我解决了。我发现JAVA_HOMEin my hadoop-env.shis/usr/lib/jvm/java-6-openjdkJAVA_HOMEin /etc/profileis /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

我的问题解决了!我希望这能帮到您。

于 2015-04-07T14:25:04.047 回答
0

我想你已经得到了你的答案..只是添加,在项目下的 eclipse 中有一个 JRE System Library [JavaSE-1.x] 文件夹..右键单击它你会看到 JRE System Library 屏幕..你可以设置执行环境。

于 2014-11-10T07:47:17.530 回答
0

看起来有人设法用 Java 8 编译器编译了一个类。使用 Java 7 或更低的合规级别重新编译有问题的 jar。

于 2013-08-10T12:36:05.867 回答
0

好吧,显然这行不通!您在较新的 JDK 上进行编译并在较旧的 JDK/JRE 上进行部署。您需要在较旧的 JDK 上进行编译。

于 2013-08-10T12:37:45.697 回答
0

问题是由于 .jsp 文件使用比预期 (7) 更高的编译器 (8) 进行编译。将所有编译级别更改为较低的级别(即 7),同时更改 .exe 所在文件夹中的 eclipse 配置设置文件中给出的 jdk 路径。

于 2014-06-09T14:30:10.880 回答
0

我也遇到了同样的问题。应该使用相同的 JAVA 版本进行编译,并在执行它的位置使用相同或更高版本,反之亦然会导致此错误。如果您检查:

  1. Window > Preferences > Compiler > compiler level
  2. java -version 并且两者都有相同的版本,那么你很高兴。在 Eclipse 中创建新项目时: File -> New -> Java ProjectJRE下选中Use an execution environment在此处输入图像描述并设置为您的系统和您需要执行此项目的系统上的相同版本。
于 2019-09-15T13:21:10.667 回答