预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

可以直接调用dll中的函数。 不需要你再使用C语言编写dll来适配。 不逊于P/Invoke的JNA 现在,不需要再羡慕.NET的P/Invoke机制了。JNA把对dll/.so共享库的调用减少到了和P/Invoke相同的程度。 使用JNA,不需要再编写适配用的.dll/.so,只需要在Java中编写一个接口和一些代码,作为.dll/.so的代理,就可以在Java程序中调用dll/so。 JNA快速启动 现在让我们直接进入JNA的世界。 你只需要下载一个jar包,就可以使用JNA的强大功能方便地调用动态链接库中的C函数。 1,下载jna.jar。 在这里HYPERLINK"https://jna.dev.java.net/servlets/ProjectDocumentList?folderID=7408&expandFolder=7408&folderID=0"https://jna.dev.java.net/servlets/ProjectDocumentList?folderID=7408&expandFolder=7408&folderID=0 2,现在你已经可以使用JNA了。 为了方便你参考JNA的java类库,我制作了《JNA3.09API参考手册》,是CHM格式的。你可以到这里下载HYPERLINK"http://download.csdn.net/source/900438"http://download.csdn.net/source/900438 JNA例子 介绍 给大家介绍一个最新的访问本机代码的Java框架—JNA。 JNA(JavaNativeAccess)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。 JNA项目地址:HYPERLINK"https://jna.dev.java.net/"https://jna.dev.java.net/ 非常强大、易用,功能上类似与.NET的P/Invoke。 不堪回首的JNI 我们知道,使用JNI调用.dll/.so共享类库是非常非常麻烦和痛苦的。 如果有一个现有的.dll/.so文件,如果使用JNI技术调用,我们首先需要另外使用C语言写一个.dll/.so共享库,使用SUN规定的数据结构替代C语言的数据结构,调用已有的dll/so中公布的函数。 然后再在Java中载入这个适配器dll/so,再编写Javanative函数作为dll中函数的代理。 经过2个繁琐的步骤才能在Java中调用本地代码。 因此,很少有Java程序员愿意编写调用dll/.so库中的原生函数的java程序。这也使Java语言在客户端上乏善可陈。可以说JNI是Java的一大弱点! .NET平台上强大的P/Invoke 而在.NET平台上,强大的P/Invoke技术使我们Java程序员非常羡慕。使用P/Invoke技术,只需要使用编写一个.NET函数,再加上一个声明的标注,就 例子1 现在让我们运行一个JNA程序,感受它的强大威力。 1,在Java项目中引入jna.jar包。 2,创建一个类: importcom.sun.jna.Library; importcom.sun.jna.Native; importcom.sun.jna.Platform;介绍 给大家介绍一个最新的访问本机代码的Java框架—JNA。 JNA(JavaNativeAccess)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。 JNA项目地址:HYPERLINK"https://jna.dev.java.net/"https://jna.dev.java.net/ 非常强大、易用,功能上类似与.NET的P/Invoke。 不堪回首的JNI 我们知道,使用JNI调用.dll/.so共享类库是非常非常麻烦和痛苦的。 如果有一个现有的.dll/.so文件,如果使用JNI技术调用,我们首先需要另外使用C语言写一个.dll/.so共享库,使用SUN规定的数据结构替代C语言的数据结构,调用已有的dll/so中公布的函数。 然后再在Java中载入这个适配器dll/so,再编写Javanative函数作为dll中函数的代理。 经过2个繁琐的步骤才能在Java中调用本地代码。 因此,很少有Java程序员愿意编写调用dll/.so库中的原生函数的java程序。这也使Java语言在客户端上乏善可陈。可以说JNI是Java的一大弱点! .NET平台上强大的P/Invoke 而在.NET平台上,强大的P/Invoke技术使我们Java程序员非常羡慕。使用P/Invoke技术,只