Почему происходит сбой QuickTime QTSession.open при упаковке с использованием OSX Jar Bundler?

Я использую QuickTime для 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: в универсальной оболочке нет подходящей архитектуры

2 ответа

Решение

QuickTime для Java работает только в 32-битном режиме. Несмотря на то, что J2SE 5.0 (32-разрядная версия) установлена ​​в качестве JVM для Java-приложений, может показаться, что пакеты приложений, созданные с помощью http://mojo.codehaus.org/osxappbundle-maven-plugin/ умолчанию работают на 64-разрядной версии JVM. Настройка osxappbundle-maven-plugin для использования пользовательского Info.plist, который содержит следующий ключ:

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

Принудительно запускает пакет приложений в 32-разрядном режиме и устраняет проблему.

Большое спасибо Уксус за то, что указал мне правильное направление.

Я также нашел... вы Java -приложение с Java -D32...

(ссылка: http://macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java -under-snow-leopard/)

Другие вопросы по тегам