JAVA调用DLL -- JNA和Fat Jar的使用及打包问题(一)
2017-07-24 10:19
507 查看
概述:
由于工作的需要,探索了下有关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,看到WindowsPreference下有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、实例说明:
由于工作的需要,探索了下有关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,看到WindowsPreference下有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、实例说明:
相关文章推荐
- JAVA调用DLL -- JNA和Fat Jar的使用及打包问题(二)
- [JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PWideChar
- JNA的一个小问题-调用dll处理字符串,在java中不能反映出字符串变化
- Java工作笔记:部署Tomcat时使用jni和jna调用DLL文件的问题
- [JNA系列]Java调用Delphi编写的Dll之JNA使用
- Java使用JNI调用DLL的问题总结
- Windows上使用JNA调用自己编写的DLL问题
- 关于vs2010下编译dll动态库,JNA接口在java中调用的问题
- java使用JNA(Java Native Access)调用dll的方法
- java使用jna调用c#中dll的方法详解
- java中调用本地动态链接库(*.DLL)的两种方式详解和not found library、打包成jar,war包dll无法加载等等问题解决办法
- Java 通过 JNA 调用 DLL 返回 char * 字符串乱码问题的解决
- 如何在java中使用jna.jar调用Delphi写的dll
- 在java中使用JNA调用加载DLL
- java使用JNA调用dll的方法
- java使用JNA调用dll
- java使用jna 方法调用Win32 dll
- [JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PAnsiChar
- JAVA 通过 JNA 调用 C程序 dll 函数传入中文参数问题
- 使用JNI技术实现JAVA程序调用dll