java.lang.UnsupportedClassVersionError TestCase

JavaFramework-JDK6.jar 放到JDK17运行没有问题

java.lang.UnsupportedClassVersionError TestCase_第1张图片

 JavaFramework源码放到JDK17环境下编译出来的JavaFramework-JDK17.jar

JavaFramework-JDK17.jar 放到JDK17运行没有问题

JavaFramework-JDK17.jar 放到JDK8运行没有问题,这个好像不对啊,可能之前编译设置version之类

java.lang.UnsupportedClassVersionError TestCase_第2张图片

=====于是弄个新环境验证下=====

1)在JDK17新环境新建工程TestClazzVersion,写个公共类T,方法test

java.lang.UnsupportedClassVersionError TestCase_第3张图片

 2)导出工程

 java.lang.UnsupportedClassVersionError TestCase_第4张图片

3)生成 TestClazzVersion-JDK17.jar

java.lang.UnsupportedClassVersionError TestCase_第5张图片

4) 把导出的 TestClazzVersion-JDK17.jar,放到JDK8的工程里面

java.lang.UnsupportedClassVersionError TestCase_第6张图片

5)然后就报错了【java.lang.UnsupportedClassVersionError】

java.lang.UnsupportedClassVersionError TestCase_第7张图片

4B1317DE7618D2A2569B1AC95AB1AAA4
Exception in thread "main" java.lang.UnsupportedClassVersionError: a/T has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at zwf.Test.main(Test.java:34)

JDK8    52

JDK11   55(印象中)

JDK17   61

6)拿源代码到JDK8环境编译个新的包吧TestClazzVersion-JDK8.jar,

java.lang.UnsupportedClassVersionError TestCase_第8张图片

java.lang.UnsupportedClassVersionError TestCase_第9张图片

把旧的TestClazzVersion-JDK17.jar移除,就没啥问题

java.lang.UnsupportedClassVersionError TestCase_第10张图片

java.lang.UnsupportedClassVersionError TestCase_第11张图片

java.lang.UnsupportedClassVersionError TestCase_第12张图片

JAR其实应当分JDK编译版本,吐血,然后低版本有些方法在JDK高版本没有,因为修改过了,其实很坑的;

顺便说下软件架构师,我刚好干过,有个工作内容就是整理这些包里面的东西,包含方法,升级,因此需要会读源代码;

java.lang.UnsupportedClassVersionError TestCase_第13张图片

 

你可能感兴趣的:(java,java)