1、动态库部署,window,linux两个系统的动态库是不一样的,动态库调用要区分系统。window为.dll,linux为.so
2、动态库的加载一般使用,一下为linux版:
static {
log.info("java.library.path:{}",System.getProperty("java.library.path"));
System.loadLibrary("mrapi");
}
加载的为java.library.path下的动态库,本机为java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib:
本人把动态库部署在/usr/lib64下,如果不一样请按情况部署
java.library.path也可在部署时配置,使用:-Djava.library.path=/opt/crtrustdata/config:/usr/lib64/mrapi:/usr/lib64:/lib64:/lib:/usr/lib
则把动态库部署在/opt/crtrustdata/config下即可
3、错误:V [libjvm.so+0x6ca9b7] jni_GetStringUTFChars+0x67,多半为参数为空
4、动态库一般都有方式说明,比如:
000000000009ed30 T Java_com_sscc_fdep_mrapi_Mr2CreatePkgID
000000000009e200 T Java_com_sscc_fdep_mrapi_Mr2Destroy
000000000009dda0 T Java_com_sscc_fdep_mrapi_Mr2GetPeerUserStat
000000000009e880 T Java_com_sscc_fdep_mrapi_Mr2GetVersion
000000000009e9f0 T Java_com_sscc_fdep_mrapi_Mr2Init
面对这种,动态库接口包,类,方法都已固定,请勿随意更改,否则就会报错
java对接动态库接口
最新推荐文章于 2021-12-04 15:46:08 发布