2008-09-24 85 views
1

我想使用JVLC,但我似乎無法得到它的工作。我已經下載了jar,我安裝了VLC並將-D參數傳遞給JVM,告訴它在哪裏安裝了VLC。我也試過:如何使用JVLC(用於VLC的Java綁定)?

NativeLibrary.addSearchPath("libvlc", "C:\\Program Files\\VideoLAN\\VLC"); 

沒有運氣。我總是得到:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libvlc': The specified module could not be found.

有沒有人讓它工作?

+1

這些日子更好的選擇是VLCJ:http://code.google.com/p/vlcj/ JVLC項目幾乎已經死了,VLCJ早已超越了它。 – berry120 2011-08-04 16:18:16

回答

1

如果您嘗試加載的dll需要其他不可用的dll,則可以獲取該異常。對不起,我不能提供更具體的幫助,但它是檢查出來的東西。您可以使用depends來演示dll依賴關係。

1

不確定該NativeLibrary類。通常,在使用本地庫時,需要將系統屬性「java.library.path」設置爲本地庫的位置。正如所建議的,如果你的本地庫(dll,so等)依賴於附加的本地庫,那麼操作系統將接管來解決這些依賴關係。操作系統對java.library.path沒有任何線索,通過搜索本機庫的操作系統特定路徑來進行提示。在Windows上,這包括當前的PATH環境變量以及Windows目錄中的System32。在linux上,這是LD_LIBRARY_PATH/ld.conf設置。

嘗試將PATH(LD_LIBRARY_PATH)設置爲指向與java.library.path相同的位置。唯一的問題是你不能設置你的進程啓動的這個(JVM),這已經太晚了。您需要在JVM啓動之前設置環境。您可以對批處理文件,shell腳本,Ant或直接從IDE執行此操作。

1

我也有同樣的問題,我注意到它只發生在64位jdk/jre。 在Win7 x64下像32位jdk一樣具有魅力。

有一個很好的編碼!

-Sipe

1

你應該嘗試

System.load("C:\\Path\\To\\libvlc.dll"); 

至少以驗證您的圖書館可以加載。 如果沒有,它可能會給你有用的錯誤信息(它爲我做的)。 (和Sipe提到的一樣,你可能使用64位的JRE/JDK,在這種情況下libvlc將永遠不會被發現(它只有32位),在這種情況下,你必須切換到使用32位的JRE/JDK )