1

我正在使用 QuickTime for Java 在 Java 桌面应用程序中显示视频。将此应用程序构建为 jar 文件时一切正常,但由于某种原因,当我使用此 maven 插件将应用程序打包为看起来像本机 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:通用包装器中没有匹配的架构

4

2 回答 2

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 为我指明了正确的方向。

于 2009-11-29T06:38:11.183 回答
2

我还发现...您使用 java -d32 的 java 应用程序...

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

于 2011-10-27T20:59:41.150 回答