作者:郭嘉
邮箱:[email protected]
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
本篇文章是【JNA探索之路系列】的开篇文章,主要介绍JNA的相关功能。
首先给出相关资源:
在讨论JNA之前,先讨论一下大家熟知的JNI工作流程,如下所示:
- 编写Java类代码
- 编译字节码
- 产生C/C++头文件
- 编写JNI代码
- 编译成链接库文件
可见编程步骤非常繁琐,而且JNI层代码的编写非常容易出问题,对于一个已经编写好的.dll/.so库,我们还需要用JNI代码为它封装一层,用Java规定的数据结构替代C语言的数据结构,然后才能成为Java可以用的.dll/.so库。
那么有办法不用编写JNI层代码就直接使用.dll/.so库库吗?
答案是肯定的,JNA(Java Native Access)就是提供