【问题标题】:Why does QuickTime QTSession.open fail when packaged using OSX Jar Bundler?为什么使用 OSX Jar Bundler 打包 QuickTime QTSession.open 会失败?
【发布时间】:2011-10-28 04:59:41
【问题描述】:

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

【问题讨论】:

    标签: java macos quicktime


    【解决方案1】:

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

    【讨论】:

    • 我的荣幸。感谢您在这里提供解决方案,因此将来可能会对其他人有所帮助。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-17
      • 2013-08-02
      • 2013-02-28
      • 2016-04-11
      • 2021-10-10
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多