Я несколько раз сталкивался с этой ошибкой, пытаясь освежить свою Java. Искал решения в Интернете, и большинство предложений заключалось в том, чтобы скомпилировать или запустить файл с аргументом флага/опции, чтобы указать правильную версию интерпретатора. Мой вопрос в том, есть ли более постоянное решение для этого? (я использую vscode. Думаю, есть что-то, что я могу добавить в свой файл settings.json в рабочей области, но что?)
Error: LinkageError occurred while loading main class com.example.demo.DemoApplication
java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication has been compiled by a more recent version of the Java Runtime (class file version 59.65535), this version of the Java Runtime only recognizes class file versions up to 58.0
вот подробности моей версии
$ java --version
java 14.0.2 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
Я бы не хотел использовать флаги всякий раз, когда я компилирую и запускаю java-файл из командной строки. Бонусные баллы для вас, если вы можете объяснить, почему эта проблема возникает в первую очередь? Когда я изучал Java, вам приходилось загружать и устанавливать JRE и JDK отдельно. Я могу понять ошибочную загрузку несовместимых версий, но теперь кажется, что JRE поставляется в комплекте с JDK. Как в таком случае могут быть несовместимые версии компилятора и интерпретатора?