spark提交jar包时出现unsupported major.minor version 52.0错误的解决方案

一、问题:

    最近在spark集群上做一个项目,打包提交jar包时,出现了unsupported major.minor version 52.0的报错,而在local模式运行却能正常运行!

二、错误原因:

    查阅诸多资料得出的结论就是:项目编译得到的class文件的版本高于运行环境中jre的版本号,高版本JDK编译的class不能在低版本的jvm虚拟机下运行,否则就会报这类错,因此无法运行!49,50,51,52是Java编译器内部的版本号,版本对应信息如下:

  Unsupported major.minor version 52.0 对应于 JDK1.8(JRE1.8)

  Unsupported major.minor version 51.0 对应于 JDK1.7(JRE1.7)

  Unsupported major.minor version 50.0 对应于 JDK1.6(JRE1.6)

  Unsupported major.minor version 49.0 对应于 JDK1.5(JRE1.5)

  因此出现问题的原因就是:编译产生的class文件是jdk1.8版本的,而jvm环境低于1.8,因此报错:

三、解决过程:

    首先我先去产看了一下编译产生的class文件的版本号,进入工程目录的class文件所在文件夹,使用 javap -verbose classname.class命令(classname是编译得到的class名,这里我的是JTool)查看编译版本如下:

    

  major version: 52,即编译的jdk版本是1,8的,因此必须运行在1.8的jvm中,接下来我又去查看ubuntu的jdk版本:

  用java -version查看jdk版本如下:

    

  可以看出,ubuntu的java版本也是jdk1.8的,因此应该是可以去正常运行的!考虑到这是在spark集群上运行jar包,我有思考是不是spark配置里面默认使用了低版本的jdk,导致问题的出现,便又去查看了spark的环境配置文件spark-env.sh,如下:

    

  果然,spark配置文件中的java版本是jdk1.7的,和ubuntu环境配置的java版本不一致,这就导致了问题的出现!只要把spark-env.sh中JAVA_HOME的参数修改为已安装的jdk目录就可以了!

 至此,问题解决!

四、补充:

  众所周知,软件基本都有向下兼容的特性,因此高版本的jdk是可以编译产生低版本的class文件的,在IntelliJ IDEA中的方法如下:
  首先,进入settings

    

  然后,找到Java Compiler那一项:

    

  做如下修改:    

    这样就可以在jdk1.8的环境下,编译产生1.7的class文件,也就可以在对应低版本的jvm中运行了!

时间: 2024-08-06 09:33:01

spark提交jar包时出现unsupported major.minor version 52.0错误的解决方案的相关文章

Tomcat Unsupported major.minor version 52.0错误

Unsupported major.minor version 52.0: 看到Unsupported你是不是会想到jdk高版本能兼容低版本,但是低版本不能兼容高版本,不错,猜对了,其实就是这个意思.这个错误意思是你项目用JDK1.8运行过,现在又在本地的eclipse等开发工具或者本地环境变量为低版本的jdk1.7或者jdk1.6下运行,eclipse会说:"本地jdk版本太低,不支持这个jdk1.8编译过的项目运行".你看看你本地是报52还是51或者其他的错. 64位系统可以和32

eclipse运行项目发生Unsupported major.minor version 52.0错误

编程的世界错误多啊 各种乱七八糟的异常数不清啊 嘿嘿呦!!! 今天又碰到莫名奇妙的问题了:eclipse中原来的项目运行的好好的,前几天想学AndroidStudio于是就装了,为了节省硬盘空间节间,eclipse和Android studio用的是同一份sdk,Android studio安装时将我的sdk更新了一下,于是乎我原先eclipse中的项目便不能跑了,总是报 这个错误,以前也碰到过这个错误,解决办法就是eclipse和Android studio的sdk分开用.现在想尝试下有没有其

Unsupported major.minor version 52.0

首先要确定linux机器的jdk版本,用高版本jdk打的jar包无法在低版本的linux环境上运行,如果运行时提示 Unsupported major.minor version 52.0,就是因为版本问题导致的,但需要看看这个提示前是哪个包的版本不对 源文档 <http://blog.sina.com.cn/s/blog_64ecfc2f0102uxu6.html> 如linux机器上的JDK版本为1.7,那么打包的时候也要用1.7的版本去打包: 如果依赖的包用的JDK1.8编译的话,而li

JDK报错Unsupported major.minor version 52.0

一.问题描述: 新建web项目,由于我配置的Tomcat 6依赖jdk 1.8,所以新建的工程在jdk1.8环境下生成.当我把jdk改成1.6版本时,运行main方法或其他,则 报以下错误: java.lang.UnsupportedClassVersionError: PR/Sort : Unsupported major.minor version 52.0 二.解决方案: 在Window -->Properties-->JAVA --> Compiler-中的Compiler co

ERROR Review:Unsupported major.minor version 52.0

最近将AS从2.1.2升级至2.2版本后,项目编译报出了如下错误: java.lang.UnsupportedClassVersionError: com/android/build/gradle/LibraryPlugin : Unsupported major.minor version 52.0 经过查找发现,AS升级到2.2以后,其内置的jdk版本也同时升级到了jdk1.8,AS则会在项目Setting中提示建议你使用其内置的jdk版本: 当你勾选了下图中Use embedded JDK

java.lang.UnsupportedClassVersionError: org/hibernate/SessionFactory : Unsupported major.minor version 52.0

问题: 在学习hibernate的过程中,涉及导入jar包的问题,写该文的时候是从官网下载的最新的hibernate的jar包hibernate-release-5.2.10.Final .在测试时,出现了Unsupported major.minor version 52.0 解决: 百度了一下,version 52.0匹配的是jdk1.8,我本机是jdk1.7,修改jdk解决.但是不建议用最新的hibernate包.

异常:Unsupported major.minor version 52.0 (Use --stacktrace to see the full trace)

异常:Unsupported major.minor version 52.0 (Use --stacktrace to see the full trace) 正在写一个功能,更新了同事提交的代码之后,出现了如下错误: 1 Fatal error during compilation org.apache.tools.ant.BuildException: java.lang.UnsupportedClassVersionError: org/elasticsearch/index/query

Unsupported major.minor version 51.0 错误解决方案

Unsupported major.minor version 51.0 错误解决方案 栏目:Eclipse大师 作者:admin 日期:2015-04-08 评论:0 点击: 13,299 次 jdk1.6工程中使用外部jar包中类出现:Unsupported major.minor version 51.0原因分析:出现上述错误是因为:外部jar包使用jdk1.7(jdk7)编译,而使用此jar包的工程jdk版本为jdk1.6(jdk6),算是版本不支持. 解决方法见下面的步骤: 第一步:在

Unsupported major.minor version 51.0错误解决

今天在做中文分词,遇到很多问题,真是困难重重,而且是让人哭笑不得的问题,觉累不爱了...下面和大家分享一下吧! 一:引入jar包 下载了jar包到桌面了,然后我就复制粘贴到了项目中,但是在类中死活无法import jar包中的类,当时是一头雾水, 于是切到桌面看了一下jar包发现才200多k,豁然开朗!!!!,尼玛,jar包下载失败了,里面的类没下载下来(我去TM的下载失败你还显示在桌面上干嘛!!我TM以为下载成功了呢)希望大家引以为戒,浪费生命呀!!! 二:Unsupported major.