我試圖編譯並運行JFlashPlayer 2.1.1試用版附帶的示例代碼。 (很抱歉的下載鏈接,看來VersaEdge具有discontinued JFlashPlayer)jflashplayer中的java.lang.UnsatisfiedLinkError - getOSVersion
我能得到2009年跑了回來演示,但我無法獲得現在正在運行應用程序由於java.lang.UnsatisfiedLinkError
到com.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.txt
和Windows7 was released Oct 22 2009判斷的。所以我很確定這是一個平臺不支持的問題。
接下來的問題是,如何在Java中託管SWF?但我會保存這個後續問題。
還要添加大多數人只安裝了32位版本的Flash播放器。這可能是因爲64位Flash播放器不存在,維護得不好,對於所有平臺都不存在,這是由於Windows IE歷史上沒有所有流行插件的良好64位版本。但很高興看到QtWebKit用於此目的。 –