JAVA调用DLL -- JNA和Fat Jar的使用及打包问题(一)

来源:互联网 发布:kol粉丝数据分析 编辑:程序博客网 时间:2024/05/27 19:27

概述:
由于工作的需要,探索了下有关JAVA调用DLL方面的内容,经过三天的努力,基本掌握了解决此问题所用到的内容。
后面的应用工程中,逐渐加深的对JAVA调用DLL,及使用JAVA封装C++接口的方法和方式的理解,并对给文档进行补充总结。
在解决此问题的过程中,需要用到的相关内容有JNA和Fat Jar。

1、 工具简介

1-1、 JNA简介
JNA(Java Native Access)提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function映射。

1-2、 Fat Jar简介
一个非常简单的软件打包解决方案,它利用 Java 的定制类装入器,动态地从单一档案文件中装入应用程序所有的类,同时保留支持 JAR 文件的结构。在Eclipse开发平台中包含着打包功能,但是功能不够完善,使用Fat Jar打包插件,可以方便的完成各种打包任务,可以包含外部的包等。
因为要把写好的JAVA接口工程要打成jar包,但这个包里包含着引用的外部包—就是前面所述的JNA包。为了使外部包JNA能够使用,对JAVA接口工程打包时要使用Fat Jar打包插件来完成。

2、使用方法

2-1、JNA的使用方法
下载jna.jar。因为不需要安装,直接链接引用就行。
具体使用方法,后面例子里详细说明。

2-2、Fat Jar安装方法
说明:因为安装Fat Jar要考虑到版本的问题,下面先介绍下Eclipse各个版本及其代号。
Eclipse4.4以前的版本对应的Fat Jar是:net.sf.fjep.fatjar_0.0.31.jar,但官网上现在(2016.10)最新版本即为该版本。但对于Eclipse4.4以后的版本,则需要对应的Fat Jar是:net.sf.fjep.fatjar_0.0.32.jar。(该版本已有,可自行搜索)
这里写图片描述
说明:因为我这里使用的Eclipse的版本是Mars,所以对应的Fat Jar是:net.sf.fjep.fatjar_0.0.32.jar。

下载相应的压缩包,解压后把plugins下的这里写图片描述 ,或者下载的文件就是这里写图片描述。拷贝到Eclipse安装目录下的plugins文件夹中,重新启用Eclipse,打开Eclipse,看到WindowsPreference下有fat jar preference,则说明已经安装成功。(如下图)
这里写图片描述

至于,打包时怎样使用该插件,在后面的实例中,再做详细介绍。

补充:加入JNA
1、可以在工程下创建一个lib文件,把解压好的jna.jar放入lib文件夹中。
2、可以引用外面的jna.jar文件
加入JNA的方法:
1)、选择所要添加JNA的工程,选择“project”–>”properties”
这里写图片描述
2)、根据jna.jar在该工程的lib文件夹中还是引用外部的jna.jar文件,来选择“Add JARs…”或者”Add External JARs”,我们这里因为在工程里添加的lib文件夹中添加了jna.jar文件,所以这里选择“Add JARs…”
这里写图片描述
后续介绍实例,和打包时的一些问题。

3、实例说明:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述

原创粉丝点击