Java Runtime распознает только версии файлов классов до 52.0, даже если установлена ​​Java 11 - PullRequest
0 голосов
/ 08 мая 2019

Я не могу запустить свой сервлет java на моем сервере tomcat 9.0.12, потому что он не может обрабатывать версию класса. Я получаю следующую ошибку:

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

Почему Runtime не может обработать v55.0? Java 11 == v55.0?!

1 Ответ

2 голосов
/ 08 мая 2019

Проблема не в tomcat, а в JVM, которая запускает tomcat.

Я не знаю, как вы запустите Tomcat, но вы должны начать его с JDK 11.

Если вы используете eclipse, вы должны проверить Server Runtime .

Для других IDE или для запуска его непосредственно из ОС (в качестве приложения, службы или чего-либо еще) вы должны проверить JAVA_HOME и PATH.

...