问题产生背景:
今天我将jdk11换成了jdk8,然后在eclipse里我发现无法运行之前写的代码,点击运行立马弹出来一个红色的异常框,点击确定后出现满屏红字。这是怎么回事?仔细看我发现第一个异常框上面写着Java Virtual Machine,也就是java的虚拟机,并且在终端出现的提示中看到了UnsupportedClassVersionError的提示,从字面上可以看出大概是“未得到支持的类版本错误”的意思。
解决办法:
首先这个错误肯定是因为我更换了jdk的版本导致的,所以我尝试把代码内容复制了一份重新编译运行,结果还是报错。我开始思考因为java是先通过编译成.class文件再到JRE运行的,可能是编译和运行两个环节中有不一致导致的,只不过IDE中编译和运行的过程合二为一了,我们很容易忽略这中间的过程。所以我找到eclipse里面编译的相关设置,发现编译时所用的还是jdk11编译,这样编译后的程序不能在jdk8的JRE中运行也就说得通了。
我将这里选项点开,选择1.8版本。
成功运行程序!
总结:
java JDK更换版本的时候需要注意,不仅需要更改我们系统环境变量的设置,同时也需要确认IDE中的JDK和JRE版本是否一致,如果不一致也需要修改成对应的版本,否则可能会出现之前的程序无法在当前JRE下运行。
版权归原作者 徐不错 所有, 如有侵权,请联系我们删除。