Unsupported major.minor version 52.0
图片:
显示版本的命令提示
错误图片
程序过程1 2 3 4 5 6 7 8 9 10 |
HTML
1 2 3 4 5 6 7 8 9 10 | <HTML> <HEAD> HelloWorld Applet </HEAD> <BODY> <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150> </APPLET> </BODY> </HTML> |
误差
1 | Hello : Unsupported major.minor version 52.0 |
问题可能是什么?
这个问题是因为Java版本不匹配。参考维基百科Java类参考:
- JavaSE 12=56(0x38 HEX)
- JavaSE 11=55(0x37 HEX)
- Java SE 10=54
- Java SE 9=53
- Java SE 8=52
- Java SE 7=51
- Java SE 6=50
- Java SE 5=49
- JDK 1.4=48
- JDK 1.3=47
- JDK 1.2=46
- JDK 1.1=45
这些是指定的主要号码。与不受支持的major.minor版本相关的错误是因为在编译期间,您在运行时使用的是较高的JDK和较低的JDK。
因此,"major.minor version 52.0"错误可能是因为JAR是在JDK1.8中编译的,但您正试图使用JDK1.7环境运行它。报告的号码是必需的号码,而不是您正在使用的号码。为了解决这个问题,最好让JDK和JRE指向相同的版本。
在intellij思想中,
重新启动Intellij IDEA。
另一种可能有帮助的方法是通过指示Intellij概念启动哪个JDK版本。
转到:/applications/intellijidea15ce.app/contents/info.plist并将JVM版本替换为:
1 2 | <key>JVMVersion</key> <string>1.8*</string> |
解决这个问题的明智方法是使用最新的SDK进行编译,并在编译时使用交叉编译选项。要完全正确地使用这些选项,需要目标版本的JRE(不是JDK)的
考虑到Applet的本质,它看起来可以被编译成与Java 1.1一起使用。
您需要在您的IDE中将编译器遵从性级别改回1.7。
这可以在IDE的首选项设置中完成。例如,在Eclipse中,进入菜单窗口>首选项,选择Java,并展开它。然后选择编译器并将符合性级别更改为1.7。我相信从那以后这会奏效的。
必须使用Java的相同版本运行和编译应用程序。
如果你使用Eclipse,你应该做两件事:
在Eclipse中,单击"Window >首选项",在出现的窗口左侧,在"Java"下,单击"安装的JRE",点击"Add…"并导航到包含JDK的文件夹。
右键单击项目并单击"属性",在出现的窗口中,在左侧单击"Java编译器",并取消"使用Java构建路径上的执行环境的符合性",这允许您在列表"编译器编译级别"中选择与前一步中所设置的版本相同的版本。
您需要将Java版本升级到Java 8。
下载最新的Java存档从它的官方下载页面下载最新的Java SE开发工具包8版本,或者使用以下命令从shell下载。64位1 2 3 4 5 | # 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位
1 2 3 4 5 | # 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提取存档文件后,使用alternates命令安装它。chkconfig包中提供了alternates命令。
1 2 3 4 5 | # 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命令路径:
1 2 3 4 5 6 7 | # 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版本。
1 2 3 4 5 | 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变量1 2 3 4 5 6 7 | # 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 |
注意,路径变量的更改首先将新的Java bin文件夹放置在路径中,以重写任何现有的Java/bin。将两个Java/bin文件夹放在您的路径中是有点草率的,因此建议您将它们作为单独的任务清理。
此外,将上述所有环境变量放入
我也有同样的问题…JDK和插件版本冲突。
我用1.8编译…最新的一个,并且那个消息开始出现。因此,我已经搜索了JRE 7(http://www. Oracle)/TeaTeWorks/Java/javase/下载/服务器-jRe7下载-1931 105.html)…并安装了它…再一次。。。现在1.8和1.7在同一台计算机中。
使用NetBeans,编译并瞄准1.7版,解决了我的问题。
如果您在Android Studio中遇到问题,并且安装了Android N,请将Android渲染版本更改为旧版本,问题将消失。
如果您使用的是NetBeans IDE,右键单击该项目,选择属性并转到源代码,您可以将源代码/二进制格式更改为较低的JDK版本。
当您尝试使用Java 1.8编译器编译的类进入较低JRE版本(例如JRE 1.7或JRE 1.6)时,未支持的Maun.Unand版本52会出现。修复这个错误的最简单方法是安装最新的Java版本,即Java 8并运行程序。
阅读更多:http://javarevisited.blogspot.com/2015/05/fixing unsupported majorMinor version.html ixzz4avd4evgv
当您在Java的EDCOX1(0)中编译您的项目时(JDK 1.8),然后在EDCOX1 1中运行它(JDK 1.7)。
如果您的项目路径中有JRE-1.7库,那么,
1.右键单击项目
2.转到属性
3.选择项目方面
4、如果使用JRE 1.7,则在行中找到Java,然后选择版本(如1.7)
5.单击"应用"并运行项目。
我可以使用下面的解决方案来解决相同的问题。
在我的项目中,我添加了Java& Nbsp 8中创建的JAR文件。我的项目是指JRE 7。当我把JRE项目改为8时,我的问题解决了。
步骤:
在Eclipse中,右键单击Project Explorer中的项目名称→构建路径→库→单击JRE版本→单击编辑→已安装JRE→添加→Standerd VM→选择JRE Home单击路径(路径应为
我通过删除旧版本的JRE和安装JRE 8解决了我的问题。
我安装了Java 1.7和1.8(SBT 2.4需要Java 1.8)。即使我的项目被链接到Java 1.8,我必须将JavaHOAD环境变量更改为点1.8。最后,问题解决了。
如果您正在使用Eclipse,请确保菜单项目"属性"、"Java构建路径"、"库"、"JRE"系统库与项目要求(如图像中所示)相匹配。
解决这个问题所需要做的就是…要确保Java版本的编译和运行都是相同的。无论您使用的是什么工具或IDE。
如果您正在使用Linux,并且安装了不同版本的Java,请使用以下命令:
1 | sudo update-alternatives --config java |
这将提供一种在系统上安装的Java版本之间快速切换的方法。通过选择Java 8,我将解决您的问题。
当我安装了一个新的Java 1.8时,就发生了这个问题,但是让旧的命令行解释器打开了。
它有一个旧的路径,并用Java 1.7继续执行应用程序,而项目已经用Java 1.8构建。
如果您的JDK版本是正确的。可能导致此错误的另一个原因是您的Android Studio版本较低,但您的Gradle版本太高。
您需要使用JDK 1.7.0而不是JDK 1.8.0。
要确保这一点,您需要删除计算机上的JDK 1.8.0。
如果使用Mac,则需要删除:
/Cultual/Java/JavaVitualMadio/JDK.JDK
/库/首选项窗格/javacontrolpanel.prefpane
/library/internet插件/javaappletplugin.plugin
然后,您需要重新安装JDK1.7.0,并且您将成功地生成.jar文件。
如果您正在使用Eclipse v4.4(luna),并且已经完成了上面提到的所有步骤,那么您可能需要检查您的运行配置设置。
可能有几种可能导致此错误。根本原因是当环境编译器为JDK1.7/JRE7时,JDK1.8/JRE8中需要编译的项目不匹配。
你可以查看我的博客文章,查看你的所有设置是否正确。
将您的安道尔版本升级到JDK 1.8。
这是一个版本不匹配,你的编译器正在寻找Java版本8,你有Java版本7。
您可以在版本8的版本7中运行应用程序内部版本,但不能反过来运行,因为在更高的级别上,版本嵌入了更多的功能、增强功能,而不是以前的版本。
从此链接下载JDK版本
并为此设置JDK路径
我在Mac OS X v10.9(Mavericks)上的Eclipse中遇到了这个问题。我在堆栈溢出时尝试了许多答案…最后,在一整天之后,我*安装了新版本的Android SDK(并更新了Eclipse,菜单项目→属性→Android以使用新路径)*。
我必须获得sdk更新,但只需要删除那些我认为必要的更新,避免使用我没有使用的API(如wear和tv)。这就成功了。很明显,我好像在一路上的某个地方损坏了我的SDK。
顺便说一句。。我确实看到了在我的工作区中的一个项目重新出现的错误,但它似乎与我没有使用的AppCompat-7的导入有关。在研究了那个项目之后,到目前为止还没有看到这个问题再次出现。
只需访问http://java.com/en/download/并更新JRE版本即可。
只想添加这个。我今天有这个问题。调整了我的项目中的设置,重新构建,以及相同的问题。我(错误地)假设更改项目中的设置(Eclipse)也会导致重新编译项目所依赖的项目。在依赖树上调整所有项目的设置解决了这个问题。
这些答案对我没有帮助,但我找到了解决办法。我在WaveRead 8.2中使用了Maven构建的WebStudio,源代码和目标在Maven编译器插件中设置为1.8,并且所有的Eclipse和Maven设置都被设置为Java 1.8。问题是野飞8.2不能处理Java 1.8,所以我不得不把所有的东西设置为1.7,它工作了。
如果您使用Intellij思想,请转到项目结构(ctrl+alt+shift+s),然后可以更改项目的JDK。