Java报错--Unsupported major.minor version 52.0
遇到一个Java相关的报错:
...
java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 52.0
...
报错说的不明不白,度娘后发现这样一个消息:
Whenever something like this happens in our software, we tell our users. This is a bug, we need to fix it.
I would expect a message like: You are running the wrong Java version on this machine: 1.7, please install and set the right java version: 1.8
A normal user will first have to find out what a major.minor version is, then have to find the mapping between majaor.minor and Java version,
depending on vendor, this could even vary. This is not a good user experience.
Version-Release number of selected component (if applicable):
How reproducible:
always
Steps to Reproduce:
1. Install and set java 7: java -version should show 1.7
2. Run Java 8 compiled code against this java version
检查看发现自己服务器上Java果然是1.7的(Java -version)
下载合适的Java1.8:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装:
[root@hadoop-node-2 java]# rpm -ivh jdk-8u92-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk1.8.0_92 ########################################### [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
添加环境变量:
[root@hadoop-node-2 jdk1.8.0_92]# tail -3 /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_92
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
查看是否成功:
[root@hadoop-node-2 jdk1.8.0_92]# which java
/usr/java/jdk1.8.0_92/bin/java
[root@hadoop-node-2 jdk1.8.0_92]# which javac
/usr/java/jdk1.8.0_92/bin/javac
[root@hadoop-node-2 jdk1.8.0_92]# java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
[root@hadoop-node-2 jdk1.8.0_92]# javac -version
javac 1.8.0_92
再次运行我的程序,成功通过,不再报错,完美!
另附相关的几个近义词辨析:
Java:是一种计算机编程语言
javac:是Java语言编程编译器,是一种可以读取由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件的工具
JDK:是Java语言的软件开发工具包,没有JDK的话,无法编译Java程序
jre: 为Java Runtime Environment的简称,即Java运行环境,是运行JAVA程序所必须的环境的集合,它包括Java虚拟机(jvm)、Java核心类库和支持文件,但不包含开发工具(JDK)、调试器和其它工具。
注意:如果只需要运行Java程序或Applet,下载并安装jre即可。如果要自行开发Java软件,请下载JDK。在JDK中附带有JRE
Java报错--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 ...
- 从高版本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 52.0的原因
原因分析 很明显是JDK版本不一致所导致的,,我们知道Java是支持向后编译的,也就是说,在低版本(如JDK6)上编译的class文件或者jar文件可以在高版本上(如JDK8)上编译通过,但这并不意味 ...
- Exception in thread "main" java.lang.UnsupportedClassVersionError: * : Unsupported major.minor version 52.0 解决办法
Exception in thread "main" java.lang.UnsupportedClassVersionError: * : Unsupported major.m ...
- linux ubuntu下如何安装并且切换java版本(Unsupported major.minor version 52.0)
最近在做一个dcos(数据中心操作系统)的东西,需要用marathon来做进程管理.遗憾的是0.6版本的marathon在API方面很是缺少,换成了0.15版本之后,运行时提示“Unsupported ...
- 启动报错 Unsupported major.minor version 51.0
Unsupported major.minor version 51.0错误, 是使用jdk6启动jdk7编译的项目,更换jdk7就好了,或者用jdk6重新打包项目. 解决起来也很方便:打开excli ...
随机推荐
- 【转】C/C++程序员应聘常见面试题深入剖析
1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵.文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见. 许多面试题看似简单,却需要深厚的基 ...
- IOS添加多个按钮在导航栏
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 75.0f, 30.0f)]; UIButton * ...
- js面向对象编程:if中能够使用那些作为推断条件呢?
在全部编程语言中if是最长用的推断之中的一个.但在js中究竟哪些东西能够在if中式作为推断表达式呢? 比如怎样几行,仅仅是少了一个括号.真假就全然不同.究竟表示什么含义呢 var obj={}; ...
- C# 之 抽象类与接口
抽象类 C#同意把类和方法声明为abstract,即抽象类和抽象方法.抽象类通常代表一个抽象概念,它提供一个继承的出发点,当设计一个新的对象类时,一定是用来继承的,所以,在一个以继承关系形成的等级结构 ...
- 王立平-Android中对图像进行Base64编码
// ------------------base64-------------------// public String bitmaptoString(Bitmap bitmap) { // 将B ...
- PPTP协议握手流程分析
一 PPTP概述 PPTP(Point to Point Tunneling Protocol),即点对点隧道协议.该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网,可 ...
- easyui placeholder 解决方案
最近,再用easyui的时候,发现easyui的input标签不支持h5的placeholder,为了实现这个效果,提供以下解决方案: 1.给input标签设置placeholder. <td& ...
- DataGridView显示行号
//可以在DataGirdView的RowPostPaint事件中进行绘制. //如:添加以下方法代码 private void DrawRowIndex(object sender, DataGri ...
- Spring Annotation注解进行aop的学习
使用Maven管理项目,pom文件为: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...
- SpringMVC4.0以后版本返回json格式数据问题
第一次写博文写的不好,但希望能帮助大家,有什么偏颇的地方希望大家多多斧正.在这个问题上困扰了我两天,这两天翻来覆去睡不着.一直在想这个问题.废话不多说下面进入正题. 1.创建创建web项目,加入Spr ...