不支持的专业。次要版本52.0

图片:

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

图片错误 错误图片

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

可能是什么问题?

1805057 次浏览

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

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

我也有同样的问题……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解决了我的问题。

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

Enter image description here

您需要在IDE中将编译器遵从级别更改回1.7。

这可以在IDE的首选项设置中完成。例如,在Eclipse中转到菜单窗户首选项,选择Java,并展开它。然后选择编译器并将遵从性级别更改为1.7。我相信从那时起就会起作用。

我在安装一个新的Java 1.8时遇到了这种情况,但保留了旧的命令行解释器。

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

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

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

  1. 在Eclipse中,点击“Window > Preferences”,并在出现的窗口中,左侧,在“Java”下,点击“Installed JREs”,点击“Add…”,然后进入JDK所在的文件夹。

  2. 右键单击您的项目,点击“属性”,在出现的窗口中,在左侧,点击“Java编译器”,并取消选中“在Java构建路径上使用执行环境的遵从性”,这允许您在列表中选择“编译器编译级别”与您在上一步设置的相同版本。

如果您正在使用eclipse v4.4 (Luna)并且已经完成了上面提到的所有步骤,那么您可能需要检查运行配置设置。

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

您可以检查我的博客以检查所有设置是否正确。

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

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

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

/图书馆/ Java / JavaVirtualMachines / jdk.jdk

/图书馆/ PreferencePanes / JavaControlPanel.prefPane

互联网/图书馆/插件/ JavaAppletPlugin.plugin

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

我有Java 1.7 &安装1.8(安装SBT 2.4,需要Java 1.8)。 尽管我的项目链接到Java 1.8,但我必须将JAVA_HOME环境变量更改为点1.8。

这些答案没有一个对我有帮助,但我找到了一个解决办法 我有一个在Wildfly 8.2中使用的webproject,用Maven构建,源和目标在Maven -compiler-plugin上设置为1.8,所有Eclipse和Maven设置都设置为Java 1.8。 问题是Wildfly 8.2无法处理Java 1.8,所以我必须将所有内容设置为1.7,然后它就工作了

您需要将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文件中,以便在系统引导时自动加载。

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

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

步骤:

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

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

Enter image description here

如果你使用IntelliJ IDEA,转到项目结构(Ctrl + Alt + 转变 + 年代),你可以改变项目的JDK。

只是想加上这个。我今天遇到了这个问题。调整了我的项目中的设置,重新构建,同样的问题。我曾经(错误地)假设更改我的项目(Eclipse)中的设置也会导致我的项目所依赖的项目也被重新编译。 调整依赖树中所有项目的设置解决了这个问题

这个问题是因为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的错误。次要版本是因为在编译期间,你使用的是更高的JDK,而在运行时使用的是更低的JDK

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

IntelliJ IDEA中,

  1. 点击Maven的设置Maven进口。将导入器使用的JDK设置为1.8。
  2. 点击Maven的设置Maven跑步者。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>

如果你在Android Studio中遇到问题,并且你已经安装了Android N,将Android渲染版本更改为旧版本,问题就会消失。

Enter image description here

我在Eclipse Mac  OS  X v10.9 (Mavericks)上遇到了这个问题。我在Stack Overflow上尝试了很多答案…最后,经过一整天我*安装了新版本的Android SDK(并更新了Eclipse,菜单项目属性Android使用新路径)*

我不得不更新SDK,但只下拉那些我认为必要的更新,避免我不使用的api(如Wear和TV)。# EYZ0。显然,我似乎在开发过程中损坏了我的SDK。

顺便说一句. .我确实在我的工作空间中看到了一个项目的错误重新出现,但它似乎与我没有使用的appcompat-7的导入有关。在rm-ing了那个项目之后,到目前为止还没有看到这个问题重新出现。

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

sudo update-alternatives --config java

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

当你在java的higher version(比如jdk 1.8)上编译你的项目,然后在lower version(比如jdk 1.7)上运行它时,就会发生这种情况。

如果你的项目路径中有JRE-1.7库,

1.右击项目

2.转到属性

3.选择# EYZ0

4.在行中找到Java,如果使用JRE-1.7,则选择版本(例如1.7)

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

只需转到http://java.com/en/download/并更新JRE版本

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

不支持的专业。次要版本52.0是当你试图运行一个用Java 1.8编译器编译的类到较低的JRE版本,例如JRE 1.7或JRE 1.6。修复此错误最简单的方法是安装最新的Java版本,即Java 8并运行您的程序。

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

如果JDK版本正确。另一个可能导致此错误的原因是您的Android Studio版本较低,但您的Gradle版本太高。Upgrade your IDE to a newer version可能会有所帮助。

将您的Andorra版本升级到JDK 1.8。

这是一个版本不匹配,你的编译器正在寻找Java版本8,而你有Java版本7。

你可以在版本8中运行版本7中的应用构建,但你不能反过来做,因为当涉及到更高级别时,版本嵌入了更多的功能和增强,而不是以前的版本。

从这个链接下载JDK版本

并为此设置JDK路径

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