报错Unsupported major.minor version 52.0的原因

原因分析
很明显是JDK版本不一致所导致的,,我们知道Java是支持向后编译的,也就是说,在低版本(如JDK6)上编译的class文件或者jar文件可以在高版本上(如JDK8)上编译通过,但这并不意味着在JDK7上编译的class文件就可以在JDK5上顺利通过编译。为什么?因为高版本通常有很多低版本不支持的新特性。想想看,你能够在JDK5上编译含有lambda表达式或者Stream API的代码吗?当然不行。即便你没有使用那些低版本不支持的新特性,每个class文件都有一个major或者minor版本号,这是存在于Java编译器中的,并且和JDK的版本号是对应的,下面我们列出对应JRE的major版本号:

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

我们可以发现Java8的major版本号是52,这就意味着如果你使用JDK8执行javac命令,将会默认生成一个major版本号为52的class文件,如果你使用JDK7运行这个class文件,你就会收到"Unsupported major.minor version 52.0"。
解决方案
jdk版本改为一致,或者右键build.xml文件,Run As——External Tools Configurations,打开JRE选项卡,在Separate JRE选项中必须选择和你编译版本一致的JDK版本。
报错Unsupported major.minor version 52.0的原因的更多相关文章
- JDK1.8环境下依然报错 Unsupported major.minor version 52.0
JDK1.8环境下依然报错 Unsupported major.minor version 52.0 在配置elasticsearch-rtf全文搜索引擎时,按照Github上项目readme.md来 ...
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0的解决方案
从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0 java.lang.UnsupportedClassVersionError: PR/Sor ...
- Java报错--Unsupported major.minor version 52.0
遇到一个Java相关的报错: ... java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 52. ...
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0
ava.lang.UnsupportedClassVersionError: PR/Sort : Unsupported major.minor version 52.0这个错误是由于高版本的java ...
- JDK报错Unsupported major.minor version 52.0
一.问题描述: 新建web项目,由于我配置的Tomcat 6依赖jdk 1.8,所以新建的工程在jdk1.8环境下生成.当我把jdk改成1.6版本时,运行main方法或其他,则 报以下错误: java ...
- 报错:Unsupported major.minor version 52.0 (jar包对不同JDK版本的兼容性问题:)
Unsupported major.minor version 52.0 这类错误是因为Java版本不一致造成的,在高版本的JDK(1.8)环境中编译JAR包,然后JAR在低版本的JVM(1.6)中运 ...
- 启动报错 Unsupported major.minor version 51.0
Unsupported major.minor version 51.0错误, 是使用jdk6启动jdk7编译的项目,更换jdk7就好了,或者用jdk6重新打包项目. 解决起来也很方便:打开excli ...
- HTTP Status 500:报错Unsupported major.minor version 51.0(unable to load class XXX)
这个是jdk版本和JRE不匹配导致的. 报错信息: 问题详解:(待填) 处理: 1.检查jdk和jre版本是否匹配 ——打开命令行界面(cmd),分别输入java -version 和javac -v ...
- java 启动报错 Unsupported major.minor version 52.
这是java 版本问题,主要是版本不统一,你看看你开发工具用的java版本(编译的java版本和开发的java版本)是否统一,如果没有统一就会报这个错误.
随机推荐
- ES 的基本用法
ES的基本用法 ES的基本概念 1> 集群和节点 一个es集群是由一个或多和es节点组成的集合 每一个集群都有一个名字, 如之前的wali 每个节点都有自己的名字, 如之前的master, sl ...
- 十八.搭建Nginx服务器、配置网页认证、基于域名的虚拟主机、ssl虚拟主机
配置要求: client:192.168.4.10 proxy:192.168.4.5(eth0) 192.168.2.5(eth1) web1:192.168.2.100 web2:192.168. ...
- dp * 3
cf 467 C 从序列中选出 \(k\) 段连续的 \(m\) 个数 最大化总和 \(f_{i, j}\) 表示前 \(i\) 个位置中选出了 \(j\) 段 转移显然 #include <b ...
- Codeforces Round #574 (Div. 2)
目录 Contest Info Solutions A. Drinks Choosing B. Sport Mafia C. Basketball Exercise D1. Submarine in ...
- 数据结构实验之查找三:树的种类统计(SDUT 3375)
C: #include <stdio.h> #include <stdlib.h> #include <string.h> struct node { char d ...
- codeforces#1257 F. Make Them Similar ( 经典中间相遇问题 )
题目链接: http://codeforces.com/contest/1257/problem/F 题意: 给出$n$个30位整数 找到一个数,让它与这$n$个数分别异或,得到的$n$个数二进制1的 ...
- Jenkins 更新 jenkins.war的方法
Jenkins 有时候更新,直接是主页提示下载 jenkins.war只需要把下载的jenkins.war 替换原来的jenkins.war 就可以了那么问题来了? 原来的 jenkins.war 到 ...
- 深入理解JVM虚拟机6:深入理解JVM类加载机制
深入理解JVM类加载机制 简述:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 下面我们具体 ...
- CodeForces - 1183E Subsequences (easy version) (字符串bfs)
The only difference between the easy and the hard versions is constraints. A subsequence is a string ...
- WindowsForm客户端自动更新逻辑
启动客户端的时候,单独开一个线程,该线程主要是判断指定服务器上的更新包和本地使用的客户端是否一致,是否需要更新,不需要更新,则退出,需要更新则从服务端的下载更新包,然后提示用户是否更新,点击更新,启动 ...