linux下运行jar文件报错未找到资源文件

时间:2021-07-16 15:59:42
我用myeclipse打包的XXX.jar文件,其中用到的log4j.jar、jna.jar都在XXX.jar根目录,在windows下用命令 
java -jar XXX.jar 
可以运行,但是在linux下面却报错:
线程 "main" 中发生异常java.lang.UnsatisfiedLinkError: jnidispatch (/com/sun/jna/linux-x86/libjnidispatch.so) not found in resource path

libjnidispatch.so这个文件在jna.jar是有的,我试了好多方法都没搞定,请各位大侠指教!!!!!!!!!!!!

8 个解决方案

#1


你的文件放在什么目录下面?如何读取这个文件的?

#2


读取jar包中文件内容,必须采用getResourceAsStream("path")的方式来获取(该 文件必须在src目录或其子目录下才能获取到 )。

#3


该回复于2010-12-28 09:37:55被版主删除

#4


该回复于2010-12-28 09:37:00被版主删除

#5


.so文件可不是资源文件,这是本地可执行文件。
实在不行,将.so文件单独分发,放在系统目录或启动目录中,以便程序能加载吧。

#6


你在启动java时加上这个参数:
-Djava.library.path=你的jar所在的目录
再试试

#7


我也赞成将它先解压出来,放到一个单独的目录下,然后再在java.library.path参数中指定这个目录。

#8


搞定了,必须自己手动把so文件copy到系统lib目录下。

#1


你的文件放在什么目录下面?如何读取这个文件的?

#2


读取jar包中文件内容,必须采用getResourceAsStream("path")的方式来获取(该 文件必须在src目录或其子目录下才能获取到 )。

#3


该回复于2010-12-28 09:37:55被版主删除

#4


该回复于2010-12-28 09:37:00被版主删除

#5


.so文件可不是资源文件,这是本地可执行文件。
实在不行,将.so文件单独分发,放在系统目录或启动目录中,以便程序能加载吧。

#6


你在启动java时加上这个参数:
-Djava.library.path=你的jar所在的目录
再试试

#7


我也赞成将它先解压出来,放到一个单独的目录下,然后再在java.library.path参数中指定这个目录。

#8


搞定了,必须自己手动把so文件copy到系统lib目录下。