gpt4 book ai didi

java - 根据系统设置选择要加载的 native 库

转载 作者:行者123 更新时间:2023-12-01 05:35:15 25 4
gpt4 key购买 nike

在我们的 OSGi 代码中,我们使用 Bundle-NativeCode list header 来选择要为 Windows 或 Linux 加载的 native 库。

当我们需要使用的库之一依赖于已安装库的特定版本时,就会出现问题(GLIBC 目前在 Ubuntu 中为 2.12 版本,在 Debian 中为 2.11 版本)。有没有办法识别已安装的 Linux 风格,或者至少是具有 Bundle-NativeCode 属性的特定库的版本?你知道还有其他办法吗? (请注意,osname和osversion仅分别为我们提供“Linux”和linux内核版本,这是不够的)

谢谢!

最佳答案

不,OSGi native 代码过滤不为外部来源的包提供这种级别的依赖关系。除了尝试将依赖项的特定版本也包含在 bundle 中(这当然不适用于 glibc)之外,您无法仅通过 native 代码来实现此目的。

一种替代方法是不使用 native 代码,而是使用 bundle 通过使用不同的名称来按需加载片段代码。所以你有Linux\Glibc\211和Linux\Glibc\212,然后根据你的bundle启动的运行时,你可以自己手动调用System.loadLibrary()

关于java - 根据系统设置选择要加载的 native 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8294710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com