【问题标题】:java.lang.UnsatisfiedLinkError in jflashplayer -- getOSVersionjflashplayer 中的 java.lang.UnsatisfiedLinkError -- getOSVersion
【发布时间】:2013-04-15 23:35:59
【问题描述】:

我正在尝试编译和运行JFlashPlayer 2.1.1 试用版附带的示例代码。 (抱歉下载链接,VersaEdge好像有discontinued JFlashPlayer

我能够在 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

然后我使用

运行应用程序
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。我试过including the current directory in my path 来协助JNI 搜索,但这并没有改变任何东西。我不确定它在寻找什么 DLL。

编辑 2

找到了一个great (yet ancient) article from 2006,它描述了让示例运行的所有复杂性。没运气。从readme.txtWindows7 was released Oct 22 2009 来看,上一次JFlashPlayer 发布是在2009 年的某个时候。所以我相当肯定这是一个不受平台支持的问题。

接下来的问题是,如何在 Java 中托管 SWF?但我会将其留作后续问题。

【问题讨论】:

    标签: java flash


    【解决方案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)和JWebPane (vaporware)。

    【讨论】:

    • 还要补充一下大多数人只安装了32位版本的flash player。这可能是因为 64 位 flash 播放器不存在,维护不善,并不适用于所有平台,因为 Windows IE 历史上没有所有流行插件的良好 64 位版本。但是很高兴看到 QtWebKit 被用于此目的。
    猜你喜欢
    • 2014-08-06
    • 2011-11-28
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多