java.library.path的目的

BtD*_*BtD 2 java jvm

也许这是一个重复的问题,但我自己找不到什么.

基本上我有一个理解问题.

我有一个应用程序,当我调用它时如下工作正常:

java -Duser.dir="some path" -Djava.library.path="pathToDLL1;pathToDLL2;pathToMyDir" classToCall par1
Run Code Online (Sandbox Code Playgroud)

通过上面的调用,我的应用程序将启动并运行.

我理解的问题是在pathToMyDir目录内(这个目录的内容主要是一些需要的dll).

当我使用以下命令启动相同的应用程序时,它将失败.

java -Duser.dir="some path" -Djava.library.path="pathToMyDir;pathToDLL1;pathToDLL2" classToCall par1
Run Code Online (Sandbox Code Playgroud)

我不确定这是不是因为某些依赖,但我认为java.library.path主要用于告诉java在哪里寻找外部库.或者这是错的?是否还隐藏了一些订单信息?

Jef*_*rey 10

-Djava.library.path用于指向本机系统库(DLL等文件).它指向一个目录并调用本机代码,该代码使用System.loadLibrary该目录中的本机库查找.

应在应用程序的类路径中指定项目依赖项(jar文件),而不是在此位置.