概述
线上环境jdk版本为1.7
如果本地程序以1.8版本打包部署,则会报如下错误:
java.lang.UnsupportedClassVersionError: com/tydic/comm/CommTools com.tydic.servlet.DataReportJsonServlet.doPost(DataReportJsonServlet.java:84)
通过sublimetext打开class文件,可以看到字节码。
其中0000 表示子版本号,0034表示主版本号。即版本号为0x0034=52,jdk版本为1.8
jdk版本 | 主版本号 | 次版本号 |
1.0 | 44 | 3 |
1.1 | 45 | 3 |
1.2 | 46 | 0 |
1.3 | 47 | 0 |
1.4 | 48 | 0 |
1.5 | 49 | 0 |
1.6 | 50 | 0 |
1.7 | 51 | 0 |
1.8 | 52 | 0 |
dk中包含工具java.exe(作用:启动虚拟机运行字节码文件)、javac.exe(作用:将java源文件编译为字节码文件),jdk和java、javac的版本是一致的。javac决定class文件的版本号。
当java.exe运行字节码文件时,首先检查字节码文件的版本号。当字节码文件版本号对应的jdk版本小于等于java.exe的版本时可以正常运行,软件兼容。反之则不行。即1.9的javac编译的字节码文件,1.8的java.exe运行就会报错
最后
以上就是大力巨人为你收集整理的jdk版本不匹配问题UnsupportedClassVersionError:的全部内容,希望文章能够帮你解决jdk版本不匹配问题UnsupportedClassVersionError:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复