2011-09-08 131 views
4

我在我的Java項目中調用使用DLL文件的C++方法。現在,我已經硬編碼了路徑。把DLL文件放在哪裏?

該應用程序將部署在許多機器上,它也可以在多臺機器上運行。我應該在哪裏放入我的DLL文件,以便我可以加載它並在任何機器上調用它?

+0

請問您的應用程序。有一個GUI? –

+2

順便說一句 - 在Mac或* nix機器上無法放置DLL並加載它。你有這些平臺的本地人嗎? –

回答

0

C:\ WINDOWS \ SYSTEM32(假設C是Windows安裝的驅動器,可能是您可以從註冊表中獲得它)

我用以前使用的窗口很長一段時間&不是專家,所以我做了谷歌搜索你找到鏈接http://vlaurie.com/computers2/Articles/dll.htm

見鏈接中的最後一個話題(一開始的標題使用Regsvr32.exe註冊DLL文件

+0

regsrv32只會註冊COM/ActiveX .dll,並且只有它們具有DllRegisterServer()條目時纔會註冊。可能不是這裏的情況。 – paulsm4

2

我見過的把DLL到應用程序中JAR文件。在運行時,他們將JAR中的DLL提取到一個臨時目錄中,然後在那裏訪問它。

這不是最有效的方法,但從部署的角度來看最簡單。

+1

*「這不是最有效的方法,但最簡單」*使用[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)部署本機更容易。 –

1

您必須確保您的DLL位於類路徑中。

這樣做的一種方法是將PATH環境變量中的DLL路徑。

另一種選擇是將其添加到VM參數在變量LD_LIBRARY_PATH,比如:

java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass 

如果你正在開發一個複雜的應用程序,必須是穩定的,你必須確保DLL你需要放置在操作系統將要查找的地方,可能會想到安裝程序腳本/程序。