linux osgi配置文件,linux osgi配置

我回答下问题2

System.load 方法无需填写路径,直接写名字即可(无需填写扩展名和路径),路径是由系统的PATH路径来指定的,一般 Windows 下可拷贝到 %WINDOWS%\System32 ######

谢谢您的回答。 您的意思是,如果要我想导致conf目录下的lib.so的话, 在java代码中只要写System.load("lib.so")吗?######System.loadLibrary("lib") 即可######

如果写成System.loadLibrary("lib")好像会报下记错误

Caused by: java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: lib######

问题1:OSGi Bundle-NativeCode里要写相对于bundle的相对路径。具体关于NativeCode的用法你可以参考OSGi官方的文档。一般来说罗列出路径,处理器,操作系统应该就可以了。

问题2:NativeCode本质上相当于添加路径去java.library.path并开放给OSGi平台。所以你应该使用相对路径来加载。但我印象中OSGi必须要用OSGi的ClassLoader,因此有什么局限性。######

感谢各位的帮助, 参照红薯先生的办法, 发生了下记错误。 java.lang.UnsatisfiedLinkError: no libdemonative in java.library.path 调查了下,好像是在java的java.library.path下没有配置libdemonative.so 后来在java.library.path下添加了libdemonative.so,但问题依旧。 我参照做成Bundle的例子是下记网站 http://dz.prosyst.com/pdoc/mbs_prof_6.1/um/framework/getting_started/writingBundles.html######

我项目里的问题终于解决了, 有2个问题

1. 如果SO文件叫libdemonative.so,那必须写System.load(“demonative”)

原因不明

2. 如果你要导入SO文件的话,必须写在static静态代码块中,不能写在start方法里 猜测:可能是在bundle启动前,必须先把动态库先导入进来

######linux动态库的名字一般是libxxx.so;调用的时候不用写前面的lib######

http://osgi.jxtech.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值