Как использовать пакет, который работает с Java 1.7 в проекте, работающем под управлением 1.8?

Мой проект 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

Как запустить эту связку без исключения? Не могу поменять файл манифеста бандла.

Это зависит от используемой вами структуры и того, как вы ее настраиваете. Вам придется немного подробнее объяснить, как настроен ваш фреймворк. Все известные мне фреймворки автоматически предоставляют эту возможность для обратно совместимых виртуальных машин.

Peter Kriens 06.11.2018 10:15

Я подозреваю, что вы используете старую версию Equinox. Возможно, эта версия еще не обеспечивает правильных возможностей для Java 8.

Christian Schneider 08.11.2018 11:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
322
1

Ответы 1

Я бы подумал, что с этим можно было бы справиться с помощью настроек фреймворка по умолчанию; в противном случае должна быть возможность добавить требуемую среду / возможность выполнения, изменив соответствующее свойство запуска -

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 Core Specification § 3.4.1

Соответствующая возможность - osgi.ee. Подробнее см. Базовая спецификация OSGI § 8.2.

Может оказаться, что одно из этих изменений было внесено и не включало 1.8, и в этом случае другой подход может заключаться в том, чтобы отменить настройку и посмотреть, работают ли значения по умолчанию.

Simon Spero 06.11.2018 14:18

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