不支持的主要版本.次要版本 52.0

图片:

Command Prompt showing versions显示版本的命令提示符

Picture of error错误图片

您好.java

import java.applet.Applet;
import java.awt.*;

public class Hello extends Applet {

    // Java applet to draw "Hello World"
    public void paint (Graphics page) {
        page.drawString ("Hello World!", 50, 50);
    }
}

您好.html

<HTML>
    <HEAD>
        <TITLE>HelloWorld Applet</TITLE>
    </HEAD>

    <BODY>
        <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
        </APPLET>
    </BODY>
</HTML>

错误

Hello : Unsupported major.minor version 52.0

问题可能是什么?


答案 1

该问题是由于 Java 版本不匹配。参考 JVM 规范,以下是用于不同版本的 Java 的类文件的主要版本。(截至目前,所有版本都支持所有以前的版本。

Java SE 版本 主要版本
1.0.2 45
1.1 45(不是错别字,同一版本)
1.2 46
1.3 47
1.4 48
5.0 49
6 50
7 51
8 52
9 53
10 54
11 55
12 56
13 57
14 58
15 59
16 60

这些是分配的主号码。有关不受支持的 major.minor 版本的错误是因为在编译期间,您在运行时使用较高的 JDK 和较低的 JDK

因此,“major.minor version 52.0”错误可能是因为 jar 是在 JDK 1.8 中编译的,但您尝试使用 JDK 1.7 环境运行它。报告的号码是必需的号码,而不是您正在使用的数字。为了解决这个问题,最好将JDK和JRE指向相同的版本。

在IntelliJ IDEA中,

  1. 转到“maven 设置”“maven导入”。将导入程序的 JDK 设置为 1.8。
  2. 转到 Maven 设置MavenRunner。将 JRE 设置为 1.8。
  3. 转到菜单“文件*”→“项目结构SDK”。确保 JDK 主路径设置为 1.8。

重新启动 IntelliJ IDEA。

另一种可能有帮助的方法是指示IntelliJ IDEA启动哪个JDK版本。

转到: /Applications/IntelliJ\ IDEA\ 15\ CE.app/Contents/Info.plist 并将 JVM 版本替换为:

<key>JVMVersion</key>
<string>1.8*</string>

答案 2

解决此问题的明智方法是使用最新的 SDK 进行编译,并在编译时使用交叉编译选项。要完全正确使用这些选项,需要目标版本的 JRE(不是 JDK)。rt.jar

考虑到该小程序的性质,看起来可以编译它以用于Java 1.1,这意味着您将使用。javac -target 1.1


推荐