本文章为原创,欢迎转载,但请给出本文链接,多谢合作。
本文链接:http://blog.csdn.net/epinszteinic/archive/2009/11/19/4832921.aspx
JACOB 有很多用途,我暂时是用它来读取Windows Event Log。
它有一个jar和一个dll,我想说的是,这两个文件的存放位置。
jar很简单,跟普通的java程序一样,导入即可。
它的jar会调用这个dll,那么这个dll应该放在哪里?
需要了解的是,在启动程序的时候,dll的加载路径是存在一个叫「java.library.path」这样的JVM变量,
(想知道java.library.path的默认值是什么,
System.out.println(System.getProperty("java.library.path"))
就能获得)
可以发现,这个变量里含有c:/windows/system32,所以,一般来说,这个dll放到c:/windows/system32下就可以了,这显然不好。
我们可以通过修改这个变量的值,来达到修改dll加载路径的目的。
-Djava.library.path=...
两种设置该变量的情况:
(1)在eclipse里,这个JVM启动参数应该加在哪里:
比如我的项目目录结构是:
pzc-commons
├─ src
├─ bin
├─ lib
...
dll放在lib下,那么,JVM的启动参数应该追加下面这一行:
-Djava.library.path=${workspace_loc:pzc-commons}/lib
(2)项目打包完成后,应该如何启动:
比如打包完成的结构:
pzc-commons
├─ lib
...
run.bat
dll放在lib下,那么,JVM的启动参数应该追加下面这一行(run.bat在lib外):
-Djava.library.path=./lib