Выбор библиотеки для загрузки в зависимости от настроек системы - PullRequest
1 голос
/ 28 ноября 2011

В нашем коде OSGi мы используем заголовки манифеста Bundle-NativeCode, чтобы выбрать, какие нативные библиотеки загружать для Windows или Linux.

Проблема возникает, когда одна из библиотек, которую нам нужно использовать, зависит от конкретнойверсия уже установленной библиотеки (в настоящее время GLIBC имеет версию 2.12 в Ubuntu и 2.11 в Debian).Есть ли способ идентифицировать установленную версию Linux или, по крайней мере, версию конкретной библиотеки со свойствами Bundle-NativeCode?Вы знаете какой-нибудь другой способ обойти это?(обратите внимание, что osname и osversion дают нам только «Linux» и версию ядра Linux, чего недостаточно)

Спасибо!

1 Ответ

0 голосов
/ 29 ноября 2011

Нет, внутренняя фильтрация кода OSGi не обеспечивает такой уровень зависимости для пакетов из внешних источников. Кроме попыток включить конкретную версию вашей зависимости также в комплект (которая, конечно, не будет работать с glibc), вы не сможете достичь этого только с помощью Native-Code.

Одна из альтернатив - не использовать собственный код, а вместо этого использовать пакет для загрузки фрагмента кода по требованию, используя другое имя. Таким образом, у вас есть Linux \ Glibc \ 211 и Linux \ Glibc \ 212, а затем, в зависимости от времени запуска вашего пакета, вы можете вручную вызвать System.loadLibrary().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...