不啰嗦 直接上代码
1.首先先创建一个类,
import com.sun.jna.Library;
import com.sun.jna.Native;
public class TestHello {
public interface LgetLib extends Library {
// 调用linux下面的so文件,注意,这里只要写中间部分就可以了,不要写依赖库的全名,也不要加后缀 例如
LgetLib INSTANCE = (LgetLib) Native.loadLibrary("zresize", LgetLib.class);
// 这个方法 对应的是so 里面的方法 做一个外部的映射关系,跟so 库 里面的方法名称和类型对应上
int zresize(String src, int scaleWidth, int scaleHeight, String dst);
}
// 这个是你自己调用的方法,
public int zresize(String src, int scaleWidth, int scaleHeight, String dst) {
return LgetLib.INSTANCE.zresize(src, scaleWidth, scaleHeight, dst);
}
}
2.然后把你的so 放到 linux 下的 /usr/lib 下,这样呢 你就可以调用你的方法了 传值了。2.然后把你的so 放到 linux 下的 /usr/lib 下,这样呢 你就可以调用你的方法了 传值了。
⚠️3.千万要记住,让他们 c 用 c 编译 .so库,不要用c++ 编译,c++编译出来的.so 这个方法是找不到的。