问题描述
首先是换了台新电脑,所以环境重新安装了,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 | NOTHING