java 调用so/dll 文件

期间遇到的问题,引用了这里:点击打开链接

因为我是直接调用现有的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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章