Настройка среды выполнения в конфигурации запуска
При создании конфигурации запуска вы можете указать среду выполнения, как она используется более конкретно? Я полагаю, это заканчивается в качестве параметра для Java?
Каковы будут последствия, если у нас будет плагин, построенный с использованием среды выполнения JavaSE-1.8, и мы запустим приложение с использованием этого плагина и запустим его с помощью среды выполнения JRE-1.1?
2 ответа
Объяснение:
Это не будет работать. Среда выполнения говорит, что код предназначен для выполнения в определенной реализации Java. Это влияет как на версию байт-кода, в которую скомпилированы ваши исходники, так и на библиотеку классов Java, которую вы собираетесь использовать. Этот параметр используется IDE (не уверен, что все IDE используют его - Eclipse делает), чтобы убедиться, что вы пишете только код, который можно выполнить в данном EE.
Пример несовместимости байт-кода:
В Java 8 добавлена поддержка лямбды - если вы используете ее, ваш байт-код будет иметь инструкции, относящиеся к labmda, и не будет выполняться в старых JVM.
Пример несовместимости JCL:
Java 8 представила класс URLPermission. Если вы ссылаетесь на него в своем коде и пытаетесь запустить его для более старой библиотеки классов Java, вы получите исключение. Даже если вы компилируете свой код в более старую версию байт-кода. Класс просто недоступен в старых JCL.
Ссылки:
Сообщество Eclipse имеет много ресурсов по средам исполнения Java - читайте об этом здесь.
1,8 до 1,1? столько разногласий в версиях? В любом случае, конфигурация запуска содержит данные о пути jre, jar зависимостей и расположении файлов, в которых хранятся параметры, необходимые программе.
если вы измените env, ваш код может быть несовместим с исходным кодом, или вы можете получить ошибки типа "файл не найден / класс не найден".