Почему происходит сбой 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/)