لماذا تفشل كويك تايم QTSession.open عند تعبئتها باستخدام OSX جرة محزم؟
سؤال
وأنا باستخدام كويك تايم لجاوا لعرض الفيديو ضمن تطبيق سطح المكتب جاوة. كل شيء يعمل بشكل جيد عندما يتم إنشاء هذا التطبيق كملف جرة، ولكن لسبب ما عندما استخدم هذا مخضرم المساعد لحزمة تطبيق لتبدو وكأنها الأم 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: لا بنية مطابقة في المجمع العالمي
اقتباس فقرة>المحلول
وكويك تايم لجاوا يعمل فقط في وضع 32 بت. وعلى الرغم من وجود J2SE 5.0 (32-بت) تعيينه على أنه JVM لتطبيقات جافا، فإنه يبدو كما لو حزم التطبيقات التي تم إنشاؤها من قبل في osxappbundle-مخضرم-المساعد التخلف لتشغيل على إصدار 64 بت من JVM. وضع osxappbundle-مخضرم-المساعد لاستخدام Info.plist مخصص يحتوي على المفتاح التالي:
<key>LSArchitecturePriority</key>
<array>
<string>i386</string>
<string>ppc</string>
</array>
ويفرض حزمة التطبيق ليتم تشغيله في وضع 32 بت ويعمل على حل المشكلة.
وشكرا جزيلا الخل لافتا لي في الاتجاه الصحيح.
نصائح أخرى
وكما أنني وجدت ... لك تطبيق جافا مع جافا -d32 ...
و(المرجع: HTTP: // macintoshnotes.wordpress.com/2009/12/07/quicktime-for-java-under-snow-leopard/ )