微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 资源路径中找不到JNA本机支持(/com/sun/jna/linux-arm/libjnidispatch.so)

我已经开始构建一个java服务,它包含JNA以加载本机C/C++库,我想在RaspBerry PI aka arm平台上运行java服务.我已成功建立了稳定的服务基础,它在Windows7和linux-amd64 / debian上运行,但是在RPI平台上我得到了上述错误
线程“main”中的异常java.lang.UnsatisfiedLinkError:资源路径中找不到JNA本机支持(/com/sun/jna/linux-arm/libjnidispatch.so)

在RPI上,我做了以下事情:
*安装了openjdk7和java8 beta,支持arm hard float.
*安装了libjna-java lib.

以下是:

Java

root@pisces:/opt/TellstickReplay# java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e)
Java HotSpot(TM) Client VM (build 25.0-b04,mixed mode)
root@pisces:/opt/TellstickReplay#

LD_LIBRARY_PATH

root@pisces:/opt/TellstickReplay# echo $LD_LIBRARY_PATH
/opt/lib/jna

CLAsspATH

root@pisces:/opt/TellstickReplay# echo $CLAsspATH
/usr/lib/jna

没有任何设置似乎满足JAVA与JNA支持.我甚至试图将jna.jar和linux-arm.jar导出到Eclipse中的项目中,并且一起将jar重建为导出的jar仍然得到相同的错误.导出的jar已在windows和linux上成功测试,因此jar文件正在运行.

我也尝试在jar文件中的Manifest中使用CLAsspATH但没有成功.我也尝试从绝对路径显式加载libjnidispatch.so,但JAVA然后开始抱怨它找不到libjnidispatch.so文件,即使路径是100%正确.

那么..有谁知道如何正确获得RaspBerry PI平台上的JNA支持?请,我非常沮丧,很快放弃希望解决这个问题..

最佳答案
我正在为RPI2重新编译Apache Spark,我花了几天时间来解决这个问题.然后我找到了最简单的解决方案.您需要拥有的是认JVM的本机lib路径中的libjnidispatch.so链接.

sudo -s ln -s /usr/lib/arm-linux-gnueabihf/jni/libjnidispatch.so /usr/lib/jvm/default-java/jre/lib/arm/libjnidispatch.so

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐