Иногда при запуске приложения, может возникать ошибка: Exception in thread "main" java.lang.UnsupportedClassVersionError: ... has 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. Здесь 55.0 и 52.0 - версии class файлов.
Причина - запуск приложения на более ранней версии jvm.
Определить версию конкретного class файла:
Linux
javap -verbose TestClass | grep "major"
Windows
javap -verbose MyClass | findstr "major"
Пример результата вызова:
Определить какие версии class файлов какая jvm поддерживает, можно воспользоваться таблицей из документации:
Версия Java SE |
Дата выхода |
Major |
Поддерживаемые major версии |
---|---|---|---|
1.0.2 |
Май 1996 |
45 |
45 |
1.1 |
Февраль 1997 |
45 |
45 |
1.2 |
Декабрь 1998 |
46 |
45 .. 46 |
1.3 |
Май 2000 |
47 |
45 .. 47 |
1.4 |
Февраль 2002 |
48 |
45 .. 48 |
5.0 |
Сентябрь 2004 |
49 |
45 .. 49 |
6 |
Декабрь 2006 |
50 |
45 .. 50 |
7 |
Июль 2011 |
51 |
45 .. 51 |
8 |
Март 2014 |
52 |
45 .. 52 |
9 |
Сентябрь 2017 |
53 |
45 .. 53 |
10 |
Март 2018 |
54 |
45 .. 54 |
11 |
Сентябрь 2018 |
55 |
45 .. 55 |
12 |
Март 2019 |
56 |
45 .. 56 |
13 |
Сентябрь 2019 |
57 |
45 .. 57 |
14 |
Март 2020 |
58 |
45 .. 58 |
15 |
Сентябрь 2020 |
59 |
45 .. 59 |
16 |
Март 2021 |
60 |
45 .. 60 |
Комментарии