首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过更具体的处理器体系结构过滤器加载OSGi包中的本机代码

通过更具体的处理器体系结构过滤器加载OSGi包中的本机代码
EN

Stack Overflow用户
提问于 2013-06-21 17:30:36
回答 1查看 1.8K关注 0票数 4

当在OSGi捆绑包中注册本机库时,可以使用Bundle-NativeCode头:

代码语言:javascript
复制
libjnotify.so;osname = Linux;processor = x86

如果Java在x86 Linux环境中执行,这将使libjnotify.so库可用。

The possible processor architectures are listed on the OSGi website。但是,这并不包括新的操作系统或处理器架构。此外,它没有涵盖那些仅仅是处理器体系结构不够的环境。

对于后一种情况的示例,请考虑ARM环境。OSGi为我们提供了ARM_le和ARM_be,但我的理解是这是不够的。ARM架构的不同版本(ARMv6、ARMv7等),无论采用何种字节顺序,都不是二进制兼容的。此外,具有FPU的ARM架构可以运行使用“软浮点”(armel)或“硬浮点”(ARM) ABI的操作系统。为硬浮点编译的库不能在软浮点系统上运行,反之亦然。

那么,在这些更复杂的环境中,应该如何加载本机代码呢?

EN

回答 1

Stack Overflow用户

发布于 2013-06-21 22:28:21

您可以在启动Java时设置系统属性,以定义操作系统名称和处理器:

-Dorg.osgi.framework.processor=my_processor_name -Dorg.osgi.framework.os.name=my_os_name

请参阅核心R5规范中的4.5.3节。

然后,您可以在Bundle-NativeCode头中引用这些名称。

此外,您还可以按照http://www.osgi.org/Specifications/Reference上的说明向OSGi提交新的操作系统和处理器名称。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17231865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档