JNI
Java加载dll或so库文件的路径 java.library.path
Java的System.load 和 System.loadLibrary都可以用来加载库文件
例如你可以这样载入一个windows平台下JNI库文件:
1
System.load("C://Documents and Settings//TestJNI.dll"); //绝对路径
System.loadLibrary参数为库文件名
1
2例如你可以这样载入一个windows平台下JNI库文件
System.loadLibrary ("TestJNI");这里TestJNI必须在 java.library.path这一jvm变量所指向的路径中,可以通过如下方法获得该变量的值:
System.getProperty("java.library.path");
默认情况下,Windows平台下包含下面的路径:
1. 和jre相关的目录 2. 程序当前目录 3. Windows目录 4. 系统目录(system32) 5. 系统环境变量path指定的目录
在linux下添加一个java.library.path的方法如下:
在/etc/profile 后面加上一行 export LB_LIBRARY_PATH=路径
在执行程序的时候可以显示指定,
-Djava.library.path=路径,这种会清除掉预设置的java.library.path的值 。
实例如下:
java -jar -Djava.library.path=/home/fly/Desktop/sound_dream sound.war
https://developers.weixin.qq.com/community/develop/doc/0006c0c1d744b81889f9b448251800
java加载jar包中的库资源
1、加载jar包中资源
jar包中的资源并未解压到外部环境中,因而我们无法通过常用的加载文件的方法获知jar包中文件。通常通过如下接口来读取jar包中文件:
InputStream in = this.getClass().getResourceAsStream(“/lib/libexample.so”);
2、加载库文件
Jar包中的dll/so 文件无法直接使用System.load(),需要拷贝出来,用路径加载!
将所有动态链接库dll/so文件都放在一个临时文件夹下,然后进行加载