使用OSX Jar Bundler打包时为什么QuickTime QTSession.open失败?

时间:2009-11-29 04:55:31

标签: java macos quicktime

我正在使用QuickTime for Java在Java桌面应用程序中显示视频。当这个应用程序构建为jar文件时,一切正常,但出于某种原因,当我使用this maven plugin打包应用程序看起来像本机OSX应用程序包时,代码如下:

try {
  QTSession.open();
} catch (Throwable t) {
  logger.error("QTSession was unable to open", e);
}

引发以下错误:

  

java.lang.UnsatisfiedLinkError:/System/Library/Java/Extensions/libQTJNative.jnilib:找不到合适的图片。找到了:/System/Library/Java/Extensions/libQTJNative.jnilib:通用包装器中没有匹配的架构

2 个答案:

答案 0 :(得分:3)

QuickTime for Java仅适用于32位模式。尽管将J2SE 5.0(32位)设置为Java应用程序的JVM,但似乎osxappbundle-maven-plugin创建的应用程序包默认在64位版本的JVM上运行。设置osxappbundle-maven-plugin以使用包含以下密钥的自定义Info.plist:

<key>LSArchitecturePriority</key>
<array>
<string>i386</string>
<string>ppc</string>
</array>

强制应用程序包以32位模式运行并解决问题。

非常感谢Vinegar指出我正确的方向。

答案 1 :(得分:2)

我还发现了......你的java应用程序 java -d32 ...

(参考:http://macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/