开发者社区> 问答> 正文

java web项目如何调用.so文件?

我这里有一个libhf_test.so文件,开始是放在android project里边的,调用什么的都没有问题。
现在新加了一个需求:把这个libhf_test.so文件放到web project项目中
然后我就写了个小小的测试类
screenshot
然后运行报错了
java.lang.UnsatisfiedLinkError: no hfswpay in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at com.umpay.huafubao.util.AppUtil.(AppUtil.java:8)
Exception in thread "main"
把so文件放到java.library.path各个路径中的,有用System.load("路径/libhf_test.so")的,都不行啊
System.load("路径/libhf_test.so")会报文件类型的错,好像只能加载.dll文件
然而我就只想用System.loadLibrary()这个方法了,
adnroid工程可以直接调用是因为,它本身已经做好了配置
我想web工程也需要做一些ndk的配置才能使用吧? 希望大家能指点一二
另外:还有说要用到.h头文件的,我的开发工具myeclipse,用Java,不是vs

展开
收起
蛮大人123 2016-02-26 11:48:39 8303 0
4 条回答
写回答
取消 提交回答
  • 专注物联网

    so是linux库,dll是windows库将你的代码扔到linux上去,执行java命令运行即可。另system.loadLibrary是按照c++项目名载入,system.load是按照路径载入。

    2019-07-17 18:48:06
    赞同 展开评论 打赏
  • 软件开发,安全加密

    so是linux库,dll是windows库将你的代码扔到linux上去,执行java命令运行即可。另system.loadLibrary是按照c++项目名载入,system.load是按照路径载入。

    2019-07-17 18:48:06
    赞同 展开评论 打赏
  • .so 就是share object,是linux系统里面的动态链接库,就是说程序在运行的时候去调用的。如果java需要使用.so文件有几种方式,第一种就是直接利用JNI机制调用 .so文件,还有一种是通过ips(进程间通信,socket,队列,数据库都可以)加一层C/C++实现的代理层,然后C/C++直接调用即可。
    2019-07-17 18:48:06
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    so是linux库,dll是windows库将你的代码扔到linux上去,执行java命令运行即可。另system.loadLibrary是按照c++项目名载入,system.load是按照路径载入。

    2019-07-17 18:48:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载