[英]java.lang.UnsatisfiedLinkError in jflashplayer — getOSVersion
我正在尝试编译并运行JFlashPlayer 2.1.1试用版随附的示例代码。 (很抱歉,下载链接显示VersaEdge已停止使用JFlashPlayer )
我能够在2009年运行一个演示,但是由于com.jpackages.jflashplayer.FlashPanel.getOSVersion
的java.lang.UnsatisfiedLinkError
导致我现在无法运行该应用程序。 我正在运行Windows 7 64位,并且不使用Internet Explorer。 我猜测VersaEdge没有更新JFlashPlayer以支持Windows 7或IE中的某些组件丢失了。
另外,我是一位经验丰富的C#开发人员,但是在编译Java方面,我却是个彻头彻尾的笨蛋。 也许我缺少类路径或其他明显的命令行开关。
我已经使用其批处理文件buildClasses.bat
编译了这些类,即:
javac -d classes -classpath ..\jflashplayer.jar Example.java
然后我使用运行应用程序
java -cp classes;..\jflashplayer.jar Example
。 异常的全文:
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专家!
编辑
试用文件夹的根目录中有几个DLL和一个runExample.bat
。 批处理文件运行
java -classpath jflashplayer.jar;example/classes Example
并给了我同样的UnsatisfiedLinkError
。 我尝试在路径中包括当前目录以协助JNI搜索,但这并没有改变任何内容。 我不确定它在寻找什么DLL。
编辑2
发现了2006年的一篇很棒的文章(至今还很古老),其中描述了运行示例的所有复杂过程。 没运气。 根据readme.txt
判断,最新的JFlashPlayer版本是2009年的某个时候,而Windows7是2009年10月22日发布的 。 因此,我可以肯定这是一个不受平台支持的问题。
接下来的问题是,如何在Java中托管SWF? 但是,我将其保留用于后续问题。
在寻找了替代解决方案几个小时之后,我遇到了QT-Jambi ,它具有一个应支持Flash的WebKit组件。 它也被积极开发并且真正跨平台,而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的了解,因为他缺乏寻找绿色牧场的round回方式。
其他不太方便的解决方案是用于SWT的WebKit (仅Windows)和JWebPane ( vaporware )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.