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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Java相关文章