首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JNA入门范例

2012-12-24 
JNA入门实例JNA(Java Native Access):建立在JNI之上的Java开源框架,SUN主导开发,用来调用C、C++代码,尤其是

JNA入门实例

JNA(Java Native Access):建立在JNI之上的Java开源框架,SUN主导开发,用来调用C、C++代码,尤其是底层库文件(windows中叫dll文件,linux下是so【shared object】文件)。


JNI是Java调用原生函数的唯一机制,JNA就是建立在JNI之上,JNA简化了Java调用原生函数的过程。JNA提供了一个动态的C语言编写的转发器(实际上也是一个动态链接库,在Linux-i386中文件名是:libjnidispatch.so)可以自动实现Java与C之间的数据类型映射。从性能上会比JNI技术调用动态链接库要低。

?

笔者机器中libvirt相关的动态链接库:

?

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:145)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:188)
at com.sun.jna.Library$Handler.<init>(Library.java:123)
at com.sun.jna.Native.loadLibrary(Native.java:255)
at com.sun.jna.Native.loadLibrary(Native.java:241)
at JnaTest$Clibrary.<clinit>(JnaTest.java:12)
at JnaTest.main(JnaTest.java:22)?那是JVM没法找到动态链接库的路径,此时需要把动态链接库加入系统的/lib目录或修改配置文件:

# pwd >> /etc/ld.so.conf ? (把动态链接库所在路径加入配置文件中,此处用pwd是因为笔者当前所在目录就是链接库文件所在目录)
# ldconfig

参考:http://blog.csdn.net/laomai/article/details/1510957

?

好东西,收藏

热点排行