加载jar附带的JNA库

时间:2016-07-07 15:05:27

标签: java classloader jna

我尝试在java库(比如myLib.so)中包含一个本机库(一个linux共享库project A),它使用maven打包到jar中。我将本机库作为资源添加到jar中(在jar中放置)。

现在我尝试在另一个项目(project B)中使用此库。当我从Java库中调用我的Object上的方法时,它找不到库。

在项目B中,我打电话给

org.projectA.MyObject.initLib();
来自MyObject

project A需要访问图书馆:

public static void initLib() {
      MyLib lib = (myLib) Native.loadLibrary("myLib.so"),MyLib.class);
}

那么,我可以使用我的jar发送共享库吗?或者我是否需要使用解决方法,例如将资源作为流来将其写入文件系统?

1 个答案:

答案 0 :(得分:1)

您必须从JAR中提取它并首先将其写入临时目录。除非您编写自己的PE / ELF加载程序,否则操作系统不允许您从内存加载共享库。