不支持的major.minor版本52.0

use*_*452 596 java applet version unsupported-class-version

图片:

命令提示符显示版本 命令提示符显示版本

图片错误 图片错误

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

的Hello.html

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

    <BODY>
        <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
        </APPLET>
    </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

错误

Hello : Unsupported major.minor version 52.0
Run Code Online (Sandbox Code Playgroud)

问题可能是什么?

Aks*_*Aks 583

问题是由于Java版本不匹配.参考Wikipedia Java类参考:

  • Java SE 12 = 56(0x38 hex)
  • Java SE 11 = 55(0x37十六进制)
  • Java SE 10 = 54
  • Java SE 9 = 53
  • Java SE 8 = 52
  • Java SE 7 = 51
  • Java SE 6.0 = 50
  • Java SE 5.0 = 49
  • JDK 1.4 = 48
  • JDK 1.3 = 47
  • JDK 1.2 = 46
  • JDK 1.1 = 45

这些是指定的主要数字.有关不受支持的major.minor版本的错误是因为在编译期间,您在运行时使用更高的JDK和更低的JDK.

因此,'major.minor版本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>
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案!!奇怪的是:我将我的替代品设置为 JRE 7,并使用 JDK8 构建工具。在运行时,它说“版本 52.0”不受支持。这可能意味着编译目标被设置为 java 8。Maven 和我需要的话。 (2认同)
  • 如果我需要使用1.7,如何从Intellij IDEA解决这个问题?从命令行一切正常 (2认同)

And*_*son 89

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

鉴于该applet的性质,它看起来可以编译为与Java 1.1一起使用.


ola*_*mmy 63

您需要在IDE中将编译器合规性级别更改回1.7.

这可以在IDE的首选项设置中完成.例如,在Eclipse中,转到菜单WindowsPreferences,选择Java,然后展开它.然后选择Compiler并将合规性级别更改为1.7.我相信这将从那里起作用.


ZAI*_*ama 52

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

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

  1. 在Eclipse中,单击"Window> Preferences",在出现的窗口中,在左侧的"Java"下,单击"Installed JREs",单击"Add ..."并导航到包含的文件夹JDK.

  2. 右键单击您的项目并单击"Properties",在出现的窗口中,单击"Java Compiler"并取消选中"在Java Build Path上使用执行环境中的合规性",这样您就可以选择在"编译器编译级别"列表中,您在上一步中设置的版本相同.

  • 第二步的+1是重要的,也可以在*Window> Preferences> Java> Compiler*中全局**(不仅仅是项目特定的)**,你需要设置*"编译器合规级别"*到适当的版本. (4认同)

Adi*_*Adi 25

您需要将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
Run Code Online (Sandbox Code Playgroud)

对于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
Run Code Online (Sandbox Code Playgroud)

注意:如果上述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
Run Code Online (Sandbox Code Playgroud)

此时,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
Run Code Online (Sandbox Code Playgroud)

检查已安装的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)
Run Code Online (Sandbox Code Playgroud)

配置环境变量

大多数基于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
Run Code Online (Sandbox Code Playgroud)

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

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


Ana*_*yst 22

我有同样的问题...... JDK和插件版本冲突.

我使用1.8 ...最新的编译,并且该消息开始出现.所以我搜索了JRE 7(http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html)......并再次安装它......现在1.8和1.7在同一台电脑上.

使用NetBeans,编译和定位到1.7版,解决了我的问题.


Ivo*_*nov 19

如果您在Android Studio中遇到问题并且已安装Android N,请将Android渲染版本更改为旧版本,问题将消失.

在此输入图像描述


Edu*_*nis 17

如果您正在使用NetBeans IDE,请右键单击该项目并选择" 属性"并转到,然后您可以将源/二进制格式更改为较低的JDK版本.

在此输入图像描述


Aks*_*ain 13

当您尝试将使用Java 1.8编译器编译的类运行到较低的JRE版本(例如JRE 1.7或JRE 1.6)时,会出现不支持的major.minor版本52.0.解决此错误的最简单方法是安装最新的Java版本,即Java 8并运行您的程序.

阅读更多:http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html#ixzz4AVD4Evgv


Pra*_*shi 11

当您higher version使用java 编译项目(比如jdk 1.8)然后在a lower version(比如jdk 1.7)上运行它时会发生这种情况.

如果您的项目路径中有JRE-1.7库,那么,

1.右键点击项目

2.转到属性

3.选择项目方面

4. 如果使用JRE-1.7 ,请在行中查找Java然后选择版本(比如说1.7)

5. 单击"应用"并运行项目.


use*_*500 10

我可以使用以下解决方案解决同样的问题.

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

脚步:

在Eclipse中,右键单击项目浏览器中的项目名称→构建路径→库→单击JRE版本→单击编辑已安装的JRE →添加→标准VM→选择JRE主页单击路径(路径应该是localePath\java\jdk1.8.0_25\jre)→提供名称→保存→为项目选择相同的JRE→完成→ OK.刷新/构建项目→尝试运行Java文件.它应该工作.


mbo*_*boy 10

我通过删除旧版本的JRE并安装JRE 8解决了我的问题.


Lio*_*ana 9

我安装了Java 1.7和1.8(SBT 2.4需要Java 1.8).即使我的项目链接到Java 1.8,我也必须将JAVA_HOME环境变量更改为1.8.最后,问题解决了.


kal*_*lan 6

如果您使用的是Eclipse,请确保您的菜单项目属性Java构建路径JRE系统库符合您的项目要求(如图所示).

在此输入图像描述


Nix*_*tel 6

解决问题所需要做的就是......确保您的Java版本在编译和运行时都是相同的.无论您使用什么工具或IDE.


小智 5

当我安装一个全新的Java 1.8时,我发生了这种情况,但是打开了旧的命令行解释器.

它有一条旧路径并继续使用Java 1.7执行应用程序,而项目已经使用Java 1.8构建.


小智 5

如果您使用的是Linux并且安装了不同版本的Java,请使用以下命令:

sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

这将提供在系统上安装的Java版本之间切换的快速方法.通过选择Java 8,我将解决您的问题.