Научитесь решать исключение компилятора Java при миграции вашего приложения Java. Например, миграция приложения Spring на Spring 6 или Spring Boot 3.
1. Проблема
Мы можем столкнуться с ошибкой «Файл класса Java имеет неправильную версию 61.0», когда ожидается, что зависимая сторонняя библиотека имеет минимальную поддерживаемую версию Java 17.
Например, базовой версией для Spring Framework 6 и Spring Boot 3 является Java 17. Если мы скомпилируем приложение Spring Boot 3 с более низкой версией JDK, то получим следующую ошибку компиляции:
java: невозможно получить доступ к org.springframework.boot.SpringApplicationНеправильный файл класса: /C:/devsetup/m2/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar!/org/springframework/boot/SpringApplication.classclass-файл имеет неправильную версию 61.0, должна быть 52.0Пожалуйста, удалите его или убедитесь, что он находится в правильном подкаталоге classpath.
Аналогично мы получаем ошибку «файл класса имеет неправильную версию 61.0, должна быть 55.0», когда то же самое приложение компилируется с помощью Java 11.
2. Решение
Чтобы исправить проблему компиляции, нам необходимо скомпилировать приложение с версией Java не ниже 17. Как только мы обновим приложение до Java 17, ошибка будет исправлена.
В приложении Maven версию Java следует обновить, как показано в следующей конфигурации в pom.xml.
<родитель><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><версия>3.0.0</версия></parent><свойства><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></свойства>
Также не забудьте изменить настройки проекта, если вы используете IDE. Например, в IntelliJ Idea необходимо изменить версию SDK в настройках проекта.
![[Решено] Файл класса Java имеет неправильную версию 61.00](https://projava-code.github.io/wp-content/uploads/image09/solved-java-class-file-has-wrong-version-610-5f855a3.jpg)
После внесения вышеуказанных изменений ошибка компилятора исчезнет.
3. Версии файлов классов Java
Ниже приведены версии файлов классов из Java 8.
Java-версия | Версия файла класса |
---|---|
Ява 8 | 52.0 |
Ява 9 | 53.0 |
Ява 10 | 54.0 |
Ява 11 | 55.0 |
Ява 12 | 56.0 |
Ява 13 | 57.0 |
Ява 14 | 58.0 |
Ява 15 | 59.0 |
Ява 16 | 60.0 |
Ява 17 | 61.0 |
Ява 18 | 62.0 |
Ява 19 | 63.0 |
Ява 20 | 64.0 |
Ява 21 | 65.0 |
Ява 22 | 66.0 |
Ява 23 | 67.0 |
Ява 24 | 68.0 |
Номер версии в исключении Java поможет вам понять, какая версия JDK используется и что ожидается.