Мой проект Maven работает с Java 1.8, однако используемая среда выполнения пакета - JavaSE-1.7. Когда я запускаю пакет, возникает следующее исключение.
org.osgi.framework.BundleException: The bundle could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Как запустить эту связку без исключения? Не могу поменять файл манифеста бандла.
Я подозреваю, что вы используете старую версию Equinox. Возможно, эта версия еще не обеспечивает правильных возможностей для Java 8.




Я бы подумал, что с этим можно было бы справиться с помощью настроек фреймворка по умолчанию; в противном случае должна быть возможность добавить требуемую среду / возможность выполнения, изменив соответствующее свойство запуска -
The org.osgi.framework.executionenvironment launching property defines the current execution environment with a comma separated list of execution environment names. If not set, the framework must provide an appropriate value. This property is also deprecated, its function is replaced with org.osgi.framework.system.capabilities[.extra].
Соответствующая возможность - osgi.ee. Подробнее см. Базовая спецификация OSGI § 8.2.
Может оказаться, что одно из этих изменений было внесено и не включало 1.8, и в этом случае другой подход может заключаться в том, чтобы отменить настройку и посмотреть, работают ли значения по умолчанию.
Это зависит от используемой вами структуры и того, как вы ее настраиваете. Вам придется немного подробнее объяснить, как настроен ваш фреймворк. Все известные мне фреймворки автоматически предоставляют эту возможность для обратно совместимых виртуальных машин.