Jni开发时,dll文件放置的路径处理方式

转载 2007年09月11日 17:38:00

刚到新公司,就接到一个棘手的任务。想了很多办法,最后想使用Java COM桥来解决。JACOB是一个较成熟的开源项目,可以很方便的调用COM组件。搞过JNI的都知道,本地库要放到系统path中,这样,Java进程在运行中才能找到本地库并动态加载。我们可以通过环境变量System.getProperty("java.library.path")来查看当前JVM搜索本地库的路径。

这时,就会遇到一个问题,部署应用的时候要记住将本地库拷贝到环境变量path指定的路径中。一般在windows平台上直接copy到C:/WINDOWS/System32目录下了事。但要换一台机器部署怎么办?除了要把Java程序拿过去,还要记的把本地库也copy到正确的目录,真麻烦。于是想看看有什么好办法来解决这个问题。

首先,最容易想到的是,把本地库和class文件放在一起,利用Class.getResource(str)找到路径,然后加到环境java.library.path中:

代码
  1. URL url = Foo.class.getResource("Foo.class");   
  2. String path = (new File(url.getPath())).getParent();   
  3. System.setProperty("java.library.path", path);  


唯一的美中不足,在系统关闭的时候删除dll总是不能成功,试了两种办法都不行。想想也对,dll正被程序使用,当然不能删除。翻了一下API,Java好像没用提供unload本地库的功能,只好做罢。
解决了这么个小问题,罗罗嗦嗦一大篇,罪过罪过。后来这个项目又没有使用jacob,真对不起各位观众。 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1772149

相关文章推荐

Jni开发时,dll文件放置的路径处理方式

JACOB是一个较成熟的开源项目,可以很方便的调用COM组件。搞过JNI的都知道,本地库要放到系统path中,这样,Java进程在运行中才能找到本地库并动态加载。我们可以通过环境变量System.ge...
  • B_H_L
  • B_H_L
  • 2012-05-31 10:34
  • 881

文件上传后Apusic应用服务器内存溢出并宕机的一种处理方式

前几日,碰见一个奇怪的现象,连续的文件上传操作,会导致JVM内存溢出,而且是java.lang.OutOfMemoryError: PermGen space,内存的永久保存区域溢出。最终,导致整个A...

针对不同浏览器预览上传文件的处理方式

在学习过程中,发现在预览上传文件时,不同的浏览器会有不同的处理方式。 网页代码如下:         请选择图片:             图片预览      ...

vb.net 两个PNG文件叠加处理方式

一、从文件加载 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle...

struts2自主学习之配置国际化资源文件,传统异常处理方式, 拦截器,实现action 控制类,访问servletAPI,使用拦截器注解

struts2自主学习之配置国际化资源文件,传统异常处理方式, 拦截器,实现action 控制类,访问servletAPI,使用拦截器注解

不小心删除数据文件的处理方式

一,不小心删除了一个数据文件,非归档模式,为了把危害降到最低,打算强制打开数据库,这时候的操作方法。 我们先删除一个数据文件,现在打开数据库 SQL> shutdown abort; ORACLE...

用FormData处理form表单中同时有文件和普通文本的提交的处理方式

今天在处理文件上传的时候,后台出现request转换错误,这一句报错 // 转换成多部分request MultipartHttpServletRequest multiRequest = (M...

跨平台AR增强现实开发(四)(高通识别图5星处理方式)

高通的识别图上传到后台以后我们可以看有星级评定,星值最大为5星,星值越大有以下好处: 1、识别图越容易识别 2、识别出来的物体不会出现抖动 3、识别速度更快 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)