Java调用DLL

Posted 夏七七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java调用DLL相关的知识,希望对你有一定的参考价值。

最近做项目,用到了Java调用Dll的知识,在此记录一下。

知识都是来自网络,我整理了一下。本机环境:jdk1.8(64) tomcat8

Java调用DLL有多种方式,常用的方式有JNI、JNative、JNA等。

(1)、JNI
可以参考这篇文章:http://www.cnblogs.com/baokang/p/4979243.html
缺点:操作很麻烦,需要在Java端先定义类A和方法,再生成c需要的头文件,再生成dll,生成的dll只能在A中使用。

(2)、JNative
可以参考这两篇文章:
http://blog.csdn.net/testcs_dn/article/details/27237509
http://blog.csdn.net/testcs_dn/article/details/26980027
很感谢作者,文章非常详细。尤其是介绍dll时,“这样c++之外其它语言是调用不了的;我们需要在头文件的函数声明中添加extern "C"标志”,对于我这个c盲来说简直帮了大忙了。
问题:我用的JDK是64位的,运行是报错:JNative library no loaded sorry!分析:JNaticeCpp.dll是32位的,要是有64位的应该可以用。但官网很久都没有更新了。64位的它还不知道在哪里呢。 网上有小伙伴说是换成32的JDK,考虑了一下,还是不换JDK,另谋出路。

(3)、JNA
可以参考这篇文章:http://blog.csdn.net/liujiahan629629/article/details/41780611

OK了,Java调用到Dll了。

文章为本人原创,转载请标明出处。

以上是关于Java调用DLL的主要内容,如果未能解决你的问题,请参考以下文章

java中API怎么调用啊?

java远程调用接口的原理和范例,谢谢

java调用C#封装的DLL文件

java 调用 shell 脚本

java中如何调用DAO

java中怎样调用现有的dll文件