Настройка среды выполнения в конфигурации запуска

При создании конфигурации запуска вы можете указать среду выполнения, как она используется более конкретно? Я полагаю, это заканчивается в качестве параметра для 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, ваш код может быть несовместим с исходным кодом, или вы можете получить ошибки типа "файл не найден / класс не найден".

Другие вопросы по тегам