2013-10-11 62 views
0

我想從Classpath中加載Java中的DLL。我有一個名爲'lib'的文件夾在Classpath上,但它的實際位置是未知的。該DLL駐留在lib/dll/(x64|win32)/library.dll。我可以用這條線成功加載DLL,但前提是「LIB」文件夾是當前工作目錄:從Classpath中加載DLL

System.load(new File("lib\\dll\\" + dllFolder + "\\library.dll").getAbsolutePath()); 

不幸的是,我們的用例是這樣的,它只是不可能有文件夾始終當前的工作目錄。我怎樣才能從Classpath中加載DLL?

回答

0

通過-Djava.library.path=<path to library root>作爲您的應用程序啓動時的一個參數。

similar answer here

注意調用System.load(java.lang.String) VS System.loadLibrary(java.lang.String)之間的差異。

+0

這工作。可能不是我們最終走向的方式,但它絕對是一種解決方案。謝謝。 :) – GJK

0

使用System.getenv()來檢索CLASSPATH變量,搜索您的DLL是否存在於變量中列出的'lib'文件夾之一中。然後您應該能夠製作完整的路徑名稱。