Den*_*ler 2 java tomcat java-11
我无法在我的 tomcat 9.0.12 服务器上运行我的 java servelet,因为它无法处理类版本。我收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
我用 java 11 编译了我的代码:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当我在终端中输入: 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)
Run Code Online (Sandbox Code Playgroud)
和 javac -version
javac 11.0.2
Run Code Online (Sandbox Code Playgroud)
为什么 Runtime 不能处理 v55.0?java 11 == v55.0?!
问题不是 tomcat,而是运行 tomcat 的 JVM。
我不知道你如何启动 tomcat,但你应该用 JDK 11 启动它。
如果您使用 eclipse,您应该检查Server Runtime。
对于其他 IDE 或直接从操作系统启动(作为应用程序或服务或其他),您应该检查 JAVA_HOME 和 PATH。