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
  • 909

删除图片时,报错“正由另一进程使用,因此该进程无法访问此文件”的处理方式

在做一个小项目时练习的时候,当我单击删除按钮删除图片时,却发生了异常,如下图: 在网上搜索半天,可就是没找到解决方法,终于,经过我的不懈努力,在谷歌里面搜到了。原来,在PictureBox里面显示图片...

spring ehcache 多个maven module 中多个ehcache.xml 配置文件的处理方式

多个maven module 下都使用了ehcache.xml 文件 ,导致会出现配置文件中的缓存块找不到异常。...
  • luo1990
  • luo1990
  • 2016年12月23日 18:37
  • 654

Properties文件处理方式

项目经常用到json,xml,properties,文本文件等,作为配置文件。用来存储连接字符串或其他配置参数等。 本文记录properties。 properties文件,存储格式 键=...

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

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

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

在学习过程中,发现在预览上传文件时,不同的浏览器会有不同的处理方式。 网页代码如下:         请选择图片:             图片预览                 ...
  • wdhhxbb
  • wdhhxbb
  • 2017年06月28日 13:44
  • 144

java海量大文件数据处理方式

http://dotnet.cnblogs.com/page/68772/  1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的ur...

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

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

误删除ORACLE数据文件后的处理方式

当oraclek中的数据文件在OS系统下被误删除后,该如何恢复呢? 这时千万不要慌张重启数据库或者操作系统,可以通过dbwn进程相关句柄找回数据文件。 测试: 步骤1:用DBA身份登陆数据库并...

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

一,不小心删除了一个数据文件,非归档模式,为了把危害降到最低,打算强制打开数据库,这时候的操作方法。 我们先删除一个数据文件,现在打开数据库 SQL> shutdown abort; ORACLE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jni开发时,dll文件放置的路径处理方式
举报原因:
原因补充:

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