2010-10-18 45 views
3

我想添加和使用一個名爲JVLC的程序到我的程序。我下載了一個zip文件,其中包含一個用於java界面的jar文件(jvlc.jar)和2個dll文件(jvlc.dll,libvlc.dll)以及一個包含許多dll文件的文件夾。當我運行我的程序時出現UnsatisfiedLinkError。 我用這段代碼將這2個dll文件添加到我的項目中。添加dll庫到Java使用想法使用程序

System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll"); 
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll"); 

但仍有錯誤:

UnsatisfiedLinkError: Directory separator should not appear in library name

是否有必要對所有文件夾添加到庫路徑?如果是的話如何?

請指導我。

回答

0

根據this tutorial

  • 您需要設置LD_LIBRARY_PATH(在Linux/Unix)或PATH(Windows)中包括,其中該庫的目錄。
  • 您不需要.dll後綴。
+0

先生!我使用窗戶。我想通過IDEA將其添加到我的項目中。 – sajad 2010-10-18 16:31:46

+0

對不起,我應該說'PATH'是Windows的(閱讀我給的鏈接)。 – Bruno 2010-10-18 16:33:55

+0

指向教程的鏈接已損壞。你能提供一個總結嗎? – 2016-10-25 20:58:17

6

System.loadLibrary方法加載通過文件名基於庫名稱的libary(LIBNAME,不帶擴展名)和。例如,Java附帶一個zip.dll/zip.so(Linux),當我們使用Zip Deflater/Inflater類來處理zip文件時,會使用它。

如果您要使用指定一個dll文件名,請使用System.load(String filename)方法,否則,註冊您的DLL在java lib路徑。

可以找到一個例子here


對於示例,請執行以下操作:

//Your code.... 
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll"); 
System.loadLibrary("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll"); 

//Replace with this... 
System.load("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\jvlc.dll"); 
System.load("C:\\Users\\sajad\\Documents\\Downloads\\Compressed\\JVLC\\libvlc.dll"); 
+0

是的!我在System.loadLibrary(「C:\ ...」)末尾刪除了文件名。但仍然無效。我如何將所有圖庫添加到我的項目中?我也使用「System.load(文件名)」,但仍然錯誤:jvlc.dll:無法找到依賴庫 – sajad 2010-10-18 16:44:53

+0

看到我更新的文章.... – 2010-10-18 16:46:14

+1

@sajad你需要找到你的庫依賴和加載的庫他們第一。 – Bruno 2010-10-18 23:17:07