2009-11-29 55 views
1

我正在使用QuickTime for Java在Java桌面应用程序中显示视频。此应用程序时建成一个jar文件,一切工作正常,但由于某些原因,当我使用this maven plugin打包应用程序看起来像一个原生OSX应用程序包,下面的代码:为什么使用OSX Jar Bundler打包时QuickTime QTSession.open失败?

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

引发以下错误:

java.lang.UnsatisfiedLinkError: /System/Library/Java/Extensions/libQTJNative.jnilib: no suitable image found. Did find: /System/Library/Java/Extensions/libQTJNative.jnilib: no matching architecture in universal wrapper

回答

3

的QuickTime的Java只能在32位模式。尽管将J2SE 5.0(32位)设置为适用于Java应用程序的JVM,但看起来好像由osxappbundle-maven-plugin创建的应用程序包默认在64位版本的JVM上运行。设置osxappbundle - Maven的插件使用包含以下关键定制的Info.plist:

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

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

非常感谢醋指导我在正确的方向。

+0

我的荣幸。感谢您在这里提供解决方案,以便将来可以帮助他人。 – 2009-11-29 07:26:33