Почему 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:нет подходящей архитектуры в универсальной оболочке
Решение
QuickTime для Java работает только в 32-битном режиме.Несмотря на то, что J2SE 5.0 (32-разрядная версия) установлена в качестве JVM для Java-приложений, может показаться, что пакеты приложений, созданные osxappbundle-maven-плагин по умолчанию работает на 64-битной версии JVM.Настройка osxappbundle-maven-plugin для использования пользовательского Info.plist, содержащего следующий ключ:
<key>LSArchitecturePriority</key>
<array>
<string>i386</string>
<string>ppc</string>
</array>
Заставляет пакет приложений работать в 32-разрядном режиме и устраняет проблему.
Большое спасибо Уксусу за то, что указал мне правильное направление.
Другие советы
Я также нашел ... вы Java-приложение с java -d32 ...
(ref: http: // macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/ ) р>