这是之前工作写的文章,放在这里希望能帮助需要的人。也算支持 D 哥一下。。后续会把更多的文章放在这里 PS:都是自己写的原创文章
常用的就是 jni,jnative(基于 jni 封装了自己的 jar 包)
注意:java 调用 dll,必须 dll 里做了对应的处理。列如:方法名必须为_java_包名_类名_方法名
使用 JNI 调用 dll 步骤
- 新建一个 java 项目,将 dll 文件放入 src 下
- 配置改项目环境 jre 下 native 目录,指向 src
- 项目 jdk 一定不要用 eclipse 自带的,用自己安装的 jdk 路径
- 按照 dll 里的目录顺序新建目录及类
- 声明跟 dll 里一样的方法,方法前加 native 关键字(注意参数类型)
- 代码静态块里写(不要后缀):
static {
System.loadLibrary("testDll");
}
- 之后写 main 方法就可以调用了。如有报错,注意观察报错信息,可能会缺少依赖 dll 文件
简单封装 JNI
- 简单封装一个调用 dll 的类
- 代码可以在资源共享,我的代码中下载
- 调用代码(主要是 static 块代码变了),DllUtil 这块代码在共享里下载
static {
try {
DllUtil.extractFromJar("testDll.dll", "testDll.dll", System
.getProperty("java.io.tmpdir"));
System.load(System.getProperty("java.io.tmpdir") + "\\testDll.dll");
System.out.println("load testDll.dll success!!");
} catch (Exception e) {
System.out.println("testDll.dll error:" + e.getMessage());
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于