java编译版本过高错误问题解决

发布于 2019-07-08  223 次阅读


问题描述

首先是换了台新电脑,所以环境重新安装了,jdk装了12的版本
不料,打包发布在Linux环境下弹出这样的错误

XXX has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method)

总的来说就是编译版本太高了,运行环境过低无法运行(没有向上兼容)。由于服务器还跑了其他程序和服务,不太好停机维护,就不能对服务器的java环境进行修改了,因此还是决定降级编译版本。于是我又在电脑上重新下载安装了1.8的java版本。
在IDEA中选择1.8的jdk进行编译,出现报错:
“Error:java: 无效的源发行版: 9”
查资料都说让把 File->project structure 的 project 和 modules 的 language level 由 9 改为 8,但是我本来这里都是8.
最终发现还是pom文件中配置的编译版本,改为1.8就好了

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

注意这个地方有坑,是1.8不是 8,JAVA的命名方式就是这么独特。
再次打包放到服务器上,运行OK。

Comments


来自像素世界的代码家,创造第九艺术!