不支持major.minor版本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 

问题可能是什么?

这个问题是因为Java版本不匹配。 参考Wikipedia Java Class Reference :

  • J2SE 9 = 53
  • J2SE 8 = 52
  • J2SE 7 = 51
  • J2SE 6.0 = 50
  • J2SE 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,

  1. 转到Maven设置 – > Maven – >导入。 将导入器的JDK设置为1.8
  2. 转到Maven设置 – > Maven – > Runner。 将JRE设置为1.8
  3. 转到文件 – >项目结构 – > SDK。 确保JDK主path设置为1.8

重新启动Intellij

另一个可能有用的方法是通过指示IDEA启动哪个JDK版本。

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

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

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

鉴于该小程序的性质,它看起来可以编译为用于Java 1.1。

您将需要在IDE中将编译器合规性级别更改回1.7。 这可以在IDE的prefences设置中完成,例如在Eclipse中转到Windows —> Prefences,然后selectJava并展开它,然后selectCompiler并将合规性级别更改为1.7。 肯定这会从那里起作用

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

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

  1. 在Eclipse中,单击“窗口>首选项” ,然后在出现的窗口左侧的“Java”下 ,单击“已安装的JRE” ,单击“添加…”并导航到包含JDK。

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

你需要升级你的Java版本到Java 8。

下载最新的Java档案

从其官方下载页面下载最新的Java SE开发工具包8版本,或使用以下命令从shell下载。

为64Bit

  # 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 

对于32Bit

  # 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命令不适合你观看这个示例video使用terminal下载java源代码归档。

用替代方法安装Java

解压后的档案文件使用替代命令来安装它。 alternatives命令在chkconfig包中可用。

  # 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已成功安装在您的系统上。 我们还build议使用替代方法来设置javac和jar命令path

  # 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) 

configuration环境variables

大多数基于Java的应用程序使用环境variables来工作。 使用以下命令设置Java环境variables

设置JAVA_HOMEvariables

  # 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 

请注意,对PATHvariables的更改将首先放置新的Java bin文件夹,以便它们覆盖path中任何现有的java / bin。 将两个java / bin文件夹留在你的path中是有点草率的,所以你应该build议把它们作为一个单独的任务来清理。

在系统启动时,还要将所有上面的环境variables放在/ etc / environment文件中以便自动加载。

我有同样的问题…一个JDK和插件版本的冲突。

我使用1.8编译…最新的一个,并且这个消息开始出现。 所以我search了JRE 7( http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html ),然后再安装它…现在1.8和1.7在同一台计算机上。

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

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

在这里输入图像描述

如果您使用的是NetBeans IDE,请右键单击该项目,然后select“ 属性”并转到源代码 ,然后可以将“源/二进制格式”更改为较低的JDK版本。

在这里输入图像说明

当您尝试将使用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

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

如果您的项目path中有JRE-1.7库,

1.右键点击项目

2.转到属性

3.selectProject Facets

4.按行查找Java,然后select使用JRE-1.7的版本 (比如1.7)

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

我可以使用下面的解决scheme解决同样的问题。

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

脚步:

在Eclipse中,右键单击项目浏览器中的项目名称→构buildpath→库→单击JRE版本→单击编辑已安装JRE →添加→标准虚拟机→selectJRE home click-path(path应该是localePath\java\jdk1.8.0_25\jre )→提供名称→保存→为项目select相同的JRE→完成→ 确定 。 刷新/build立一次项目→尝试运行你的Java文件。 它应该工作。

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

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

如果您使用的是Eclipse,请确保您的Project-> properties-> java build path-> libraries-> JRE系统库符合您的项目要求。 (如图所示) 在这里输入图像描述

所有你需要做的解决这个问题是…确保你的Java版本是同样的编译和运行。 不pipe你用的是什么工具或者ide。

当我安装了新的Java 1.8时,发生了这种情况,但让旧的命令行解释器处于打开状态。 它有一条老路,不断用Java 1.7来执行应用程序,而项目已经用Java 1.8来构build。

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

sudo update-alternatives –config java

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

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

你需要使用jdk1.7.0而不是jdk1.8.0。

为了确保它,你需要删除计算机上的jdk1.8.0。

如果你使用mac,你需要删除:

/Library/Java/JavaVirtualMachines/jdk.jdk

/Library/PreferencePanes/JavaControlPanel.prefPane

/ Library / Internet Plug-Ins / JavaAppletPlugin.plugin

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

将您的Andorra版本升级到JDK 1.8这是您的编译器正在寻找java版本8的版本缺失匹配,并且您拥有java版本7.您可以在版本8中运行版本7中的应用版本,但是不能做到因为当涉及到更高级别时,版本embedded了更多function,而不是以前版本的增强function从此链接下载JDK版本

并为此设置您的JDKpath

如果您使用Eclipse Luna并且已经完成了上述所有步骤,则可能需要检查“运行configuration”设置。

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

你可以查看我的博客文章 ,通过你所有的设置是正确的。

这些答案都没有帮助我,但我find了一个解决scheme。
我有一个用Maven构build的Wildfly 8.2中使用的webproject,maven-compiler-plugin中的source和target被设置为1.8,所有的Eclipse和Maven设置都被设置为Java 1.8。 问题是Wildfly 8.2无法处理Java 1.8,所以我不得不把所有东西都设置为1.7,并且工作。

如果您使用的是Intellij,请转到项目结构(Ctrl + Alt + Shift + S),然后您可以更改您的项目JDK。

只是想添加这个。 我今天有这个问题。 调整了我的项目中的设置,重build和相同的问题。 我(错误地)认为改变我的项目(Eclipse)中的设置会导致我的项目所依赖的项目也重新编译。 调整依赖关系树上的所有项目的设置解决了这个问题。

我在Mac OS X Mavericks上的Eclipse中遇到了这个问题。 我尝试了很多答案..最后,经过一整天,我安装了一个新的Android SDK版本(和更新的Eclipse项目 – >属性 – > Android使用新的path) 。 我必须得到SDK更新,但只能拉下我认为必要的更新,避免使用API​​我没有使用这些API(比如Wear和TV)。 显然,似乎我已经损坏了我的SDK在一路上的某处。

顺便说一句..我没有看到在我的工作区中的一个项目的错误重新表面,但它似乎与导入的appcompat-7,我没有使用。 在完成那个项目之后,到目前为止还没有看到这个问题再次出现。