图片:

显示版本的命令提示符

错误图片

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

可能是什么问题?


当前回答

这个问题是因为Java版本不匹配。参考JVM规范,以下是用于不同Java版本的类文件的主要版本。(到目前为止,所有版本都支持以前的所有版本。)

Java SE version Major version
1.0.2 45
1.1 45 (Not a typo, same version)
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的错误。次要版本是因为在编译期间使用了更高的JDK,而在运行时使用了更低的JDK。

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

IntelliJ IDEA中,

进入Maven设置→Maven→导入。将导入器使用的JDK设置为1.8。 点击Maven设置→Maven→Runner。JRE版本设置为1.8。 进入菜单文件*→项目结构→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>

其他回答

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

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

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

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

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

您需要将Java版本升级到Java 8。

下载最新的Java档案

从官方下载页面下载最新版本的Java SE Development Kit 8,或使用以下命令从shell下载。

64位

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz"

 # tar xzf jdk-8u51-linux-x64.tar.gz

对于32位

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-i586.tar.gz"

  # tar xzf jdk-8u51-linux-i586.tar.gz

注意:如果上面的wget命令对您不起作用,请观看这个示例视频以使用终端下载Java源存档。

使用替代方案安装Java

在提取归档文件之后,使用alternatives命令来安装它。可在chkconfig包中使用alternatives命令。

 # cd /opt/jdk1.8.0_51/

 # alternatives --install /usr/bin/java java /opt/jdk1.8.0_51/bin/java 2

 # alternatives --config java

此时,Java 8已经成功安装在您的系统上。我们还建议使用其他选项来设置javac和jar命令路径:

 # alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_51/bin/jar 2

 # alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_51/bin/javac 2

 # alternatives --set jar /opt/jdk1.8.0_51/bin/jar

 # alternatives --set javac /opt/jdk1.8.0_51/bin/javac

检查已安装Java版本

使用以下命令检查已安装的Java版本。

root@tecadmin ~# java -version

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

配置环境变量

大多数基于java的应用程序使用环境变量来工作。使用如下命令设置Java环境变量:

设置JAVA_HOME变量

# export JAVA_HOME=/opt/jdk1.8.0_51
Setup JRE_HOME Variable

# export JRE_HOME=$JAVA_HOME/jre
Setup PATH Variable

# export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

注意,对PATH变量的更改将新的Java bin文件夹放在前面,以便它们覆盖路径中任何现有的Java /bin。在路径中留下两个java/bin文件夹有点草率,因此建议将它们作为单独的任务清理。

此外,将上述所有环境变量放在/etc/environment文件中,以便在系统引导时自动加载。

请使用JDK 1.7.0版本,而不是JDK 1.8.0版本。

为了确保这一点,您需要删除计算机上的JDK 1.8.0。

如果使用Mac,则需要删除:

/ Library / Java / JavaVirtualMachines jdk / / jdk。

/ Library / PreferencePanes / JavaControlPanel prefPane。

/library/Internet plug-ins/JavaAppletPlugin.plugin

然后,您需要重新安装JDK 1.7.0,您将成功生成.jar文件。