Jar和java.library.path

ski*_*iwi 1 java jar

我试图从磁盘的特定位置使用DLL(因为我使用的是JNotify库).

使用Netbeans 7.4,发生了以下情况:

我的临时计划只做:

System.out.println(System.getProperty("java.library.path"));

作为Netbeans中的VM选项,我设置了:-Djava.library.path=D:/JNotify-dll/.计划产出:D:/Jnotify-dll/.

当我正常运行时java <jarfile>:它没有设置主类,而我在Netbeans选项中设置它.

当我运行它时java -jar <jarfile>:它给了我%PATH%变量.

当我运行它作为java -jar <jarfile> -Djava.library.path=D:/JNotify-dll/仍然给了我,我的%PATH%变量.

有没有人知道发生了什么?我真的厌倦了它.

MANIFEST.MF通过Netbeans的生成:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_25-b17 (Oracle Corporation)
Class-Path: lib/ORM.jar lib/mysql-connector-java-5.1.23-bin.jar lib/co
 mmons-dbcp-1.4-javadoc.jar lib/commons-dbcp-1.4.jar lib/commons-pool-
 1.6-javadoc.jar lib/commons-pool-1.6.jar lib/jnotify-0.94.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: bf4.bf4logreader.BF4LogReader
Run Code Online (Sandbox Code Playgroud)

编辑: java -jar -Djava.library.path=D:/JNotify-dll/ <jarfile>,但我仍然欣赏答案.

kal*_*ech 12

您需要更改命令行参数的顺序:

java -Djava.library.path=D:/JNotify-dll/ -jar <jarfile> 
Run Code Online (Sandbox Code Playgroud)

也可以看看: