图片:

显示版本的命令提示符

错误图片

Hello.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);
    }
}

Hello.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

可能是什么问题?


当前回答

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

考虑到该applet的性质,它看起来可以被编译为与Java 1.1一起使用,这意味着您将使用javac -target 1.1。

其他回答

您必须使用相同版本的Java运行和编译应用程序。

如果你正在使用Eclipse,你应该做两件事:

In Eclipse, click on "Window > Preferences", and in the window that appears, on the left side, under "Java", click on "Installed JREs", click on "Add..." and navigate to the folder that contains the JDK. Right-click on your project and click on "Properties", in the window that appears, on the left side, click on "Java Compiler" and uncheck "Use compliance from execution environment on the Java Build Path", this allows you to choose in the the list "Compiler compilance level" the same version that you set in the previous step.

如果您使用的是Eclipse v4.4 (Luna),并且已经完成了上面提到的所有步骤,那么您可能需要检查Run Configurations设置。

可能有几种可能导致此错误。根本原因是需要在JDK1.8/JRE8中编译的项目不匹配,而环境编译器是JDK1.7/JRE7。

你可以查看我的博客文章,看看你的设置是否正确。

要解决这个问题,你所需要做的就是……确保你的Java版本在编译和运行时都是一样的。无论您使用什么工具或ide。

我可以使用下面的解决方案来解决同样的问题。

在我的项目中,我添加了一个用Java 8创建的JAR文件。我的项目引用的是JRE 7。当我将项目JRE更改为8时,我的问题就解决了。

步骤:

在Eclipse中,右键单击项目资源管理器中的项目名称→构建路径→库→单击JRE版本→单击编辑→已安装JRE→添加→标准虚拟机→选择JRE home -path(路径应为localePath\java\jdk1.8.0_25\ JRE)→提供名称→保存→选择相同的JRE项目→完成→确定。刷新/构建项目一次→尝试运行Java文件。它应该会起作用。

我安装了Java 1.7和1.8 (SBT 2.4需要Java 1.8)。 尽管我的项目链接到Java 1.8,但我必须将JAVA_HOME环境变量更改为点1.8。 问题终于解决了。