2013-04-15 49 views
1

我試圖編譯並運行JFlashPlayer 2.1.1試用版附帶的示例代碼。 (很抱歉的下載鏈接,看來VersaEdge具有discontinued JFlashPlayerjflashplayer中的java.lang.UnsatisfiedLinkError - getOSVersion

我能得到2009年跑了回來演示,但我無法獲得現在正在運行應用程序由於java.lang.UnsatisfiedLinkErrorcom.jpackages.jflashplayer.FlashPanel.getOSVersion。我正在運行Windows 7 64位,並且我做了而不是使用Internet Explorer。我猜測VersaEdge沒有更新JFlashPlayer來支持Windows 7,或者某些來自IE的組件不見了。另外,我是一個經驗豐富的C#開發人員,但在編譯Java時我是一個徹頭徹尾的笨蛋。也許我錯過了一個類路徑或其他明顯的命令行開關。

我使用他們的批處理文件buildClasses.bat,這是編譯的類:

javac -d classes -classpath ..\jflashplayer.jar Example.java 

,然後我跑使用

​​

應用。例外全文:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.jpackages.jflashplayer.FlashPanel.getOSVersion(I)I 
    at com.jpackages.jflashplayer.FlashPanel.getOSVersion(Native Method) 
    at com.jpackages.jflashplayer.FlashPanel.n(Unknown Source) 
    at com.jpackages.jflashplayer.FlashPanel.installFlash(Unknown Source) 
    at Example.createFlashPanel(Example.java:94) 
    at Example.<init>(Example.java:141) 
    at Example.main(Example.java:425) 

任何幫助表示讚賞!謝謝Java大師!

EDIT

有幾個DLL和在試驗文件夾的根目錄的runExample.bat。批處理文件運行

java -classpath jflashplayer.jar;example/classes Example 

並給出了相同的UnsatisfiedLinkError。我嘗試了including the current directory in my path來協助JNI搜索,但這並沒有改變任何內容。我不確定它在找什麼DLL。

編輯2

發現一個great (yet ancient) article from 2006描述獲得運行示例的所有複雜。沒有運氣。最新的JFlashPlayer版本是在2009年的某個時候由readme.txtWindows7 was released Oct 22 2009判斷的。所以我很確定這是一個平臺不支持的問題。

接下來的問題是,如何在Java中託管SWF?但我會保存這個後續問題。

回答

1

在尋找替代解決方案的小時後,我遇到了QT-Jambi其中有一個WebKit組件should support Flash。它也被積極開發並且真正跨平臺,而JFlashPlayer已經死去並且綁定到Windows/IE/ActiveX插件。

奇怪的是,在安裝QTJambi後,我遇到了與使用JFlashPlayer相同的問題,並發現我最初的錯誤是試圖在64位JRE中運行32位應用程序。因此,確保我已經安裝了32位JRE,我加了它的位置,是我路上

> set path=c:\Program Files (x86)\Java\jre7\bin;%path% 

> where java 
c:\Program Files (x86)\Java\jre7\bin\java.exe 
C:\Windows\System32\java.exe 
C:\Program Files\Java\jdk1.6.0_31\bin\java.exe 

的正面和執行命令行的批處理文件,示例運行良好。

最終像QTJambi(或QtWebKit)WebKit的解決方案是爲我好,我感謝我的缺乏尋找擇木而棲的是迂迴的方式Java知識的。

其他,不是那麼得心應手的解決方案是WebKit for SWT(僅Windows)和JWebPanevaporware)。

+0

還要添加大多數人只安裝了32位版本的Flash播放器。這可能是因爲64位Flash播放器不存在,維護得不好,對於所有平臺都不存在,這是由於Windows IE歷史上沒有所有流行插件的良好64位版本。但很高興看到QtWebKit用於此目的。 –

相關問題