我正在使用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:通用包装器中没有匹配的架构
答案 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/)