期间遇到的问题,引用了这里:点击打开链接
因为我是直接调用现有的so/dll文件,所以写这些文件的过程我就直接省略了,专心来写java的操作过程了。
第一步:首先写一个你的java代码,
package com.hiten.jisusdk.common.util.util;
/**
* @Auth shenwenfan
* @Date Created in 14:26 2018/7/6
*/
public class TestSo {
static {
System.load("/lib/validate.so");
}
public native int so_test(int a, String b);
public native String so_test1(int a, String b);
public static void main(String[] args) {
TestSo testSoUtil = new TestSo();
System.out.println(testSoUtil.so_test(1,"sfef"));
System.out.println(testSoUtil.so_test1(2, "adb"));
}
}
第二步:然后用这个java文件生成一个class文件,使用编译器直接编译,或者使用javac命令来生成都可以;记住你的class文件生成的位置,下一步要用到。
第三步:生成.h头文件
进入到你的class目录下(.../class)例如:进入到D:\javaCode\handleimg\target\classes下
然后执行javah命令
(涉及到特殊路径,所以做了马赛克,找到你们项目的真实路径就可以)
javah命令格式为:
例子:javah com.test.file.TestSo (完整的包名+文件名) 注意不要加后缀
平常我们的目录结构都是 ..../class/com/project/name/module/util
进入到class目录下后,在执行javah命令后边的跟的其实就是你接下来的目录(也就是你的代码内的路径),这样系统才能找到正确的文件。
package com.hiten.jisusdk.common.util.util;