也许这是一个重复的问题,但我自己找不到一些东西。
基本上我有一个理解问题。
我有一个应用程序,当我按如下方式调用它时工作正常:
java -Duser.dir="some path" -Djava.library.path="pathToDLL1;pathToDLL2;pathToMyDir" classToCall par1
通过上面的调用,我的应用程序将启动并运行。
我的理解问题是在 pathToMyDir 目录中(该目录的内容主要是一些需要的dll)。
当我使用以下命令启动相同的应用程序时,它将失败。
java -Duser.dir="some path" -Djava.library.path="pathToMyDir;pathToDLL1;pathToDLL2" classToCall par1
我不确定这是否是因为某些依赖项,但我认为java.library.path主要用于告诉java在哪里查找外部库。或者这是错的?是否还隐藏了一些订单信息?
答案 0 :(得分:10)
-Djava.library.path
用于指向本机系统库(dll或so文件)。它指向一个目录,并调用使用System.loadLibrary
的本机代码在该目录中查找本机库。
应在应用程序的类路径中指定项目依赖项(jar文件),而不是在此位置。