我无法在 tomcat 9.0.12 服务器上运行我的 javaservlet,因为它无法处理类版本。 我收到以下错误:
Error: MyClass been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class
我用 java 11 编译了我的代码:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
当我在终端中输入:java -version 时,我得到:
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
对于 javac -版本
javac 11.0.2
为什么运行时无法处理 v55.0? java 11 == v55.0?!
问题不是 tomcat 而是运行 tomcat 的 JVM。
我不知道你如何启动tomcat,但你应该使用JDK 11启动它。
如果您使用 Eclipse,您应该检查 Server Runtime。
对于其他 IDE 或直接从操作系统启动它(作为应用程序或服务或其他),您应该检查 JAVA_HOME 和 PATH。
我已经通过安装最新的 jdk 解决了这个问题。就我而言,版本 21 完成了这项工作: https://www.oracle.com/java/technologies/downloads/#jdk21