2011-11-28 72 views
1

在我们的OSGi代码中,我们使用Bundle-NativeCode清单头文件来选择为Windows或Linux加载哪些本机库。根据系统设置选择要加载的本机库

当我们需要使用的一个库取决于已经安装的库的特定版本(GLIBC目前版本为2.12,Debian版本为2.11)时,就会出现问题。有没有一种方法来识别已安装的Linux风格,或者至少是具有Bundle-NativeCode属性的特定库的版本?你知道其他方式吗? (请注意,osname和osversion只给我们“Linux”和linux内核版本,这是不够的)

谢谢!

回答

0

不,OSGi本机代码过滤不会为外部源包提供该级别的依赖关系。除了试图在软件包中包含特定版本的依赖关系(这当然不适用于glibc),您无法通过Native-Code单独实现此目的。

一种替代方法是不使用本机代码,而是使用您的包通过使用不同的名称按需加载片段代码。因此,您拥有Linux \ Glibc \ 211和Linux \ Glibc \ 212,然后根据您的软件包启动的运行时间,自行手动调用System.loadLibrary()

相关问题