سؤال

أحاول تشغيل التصوير المتقدمة Java (JAI) داخل حاوية OSGI (Spring-DM). أنا قادر على الوصول إلى مكتبات JAI، ولكن تلقي الخطأ التالي عند استدعاء JAI لأول مرة:

خطأ: تعذر تحميل فئات المجمع مسرع Medialib. استمرار في وضع جافا النقي. يحدث في: com.sun.media.jai.mlib.medialibaccessor com.sun.media.jai.mlib.medialibloadexception

DLLs موجودة على ClassPath والإشير إليها كمكتبات Bundle-NativeCode في بيضتي. هل من الممكن تشغيل dlls jai الأصلية داخل osgi؟ إذا كان الأمر كذلك، ماذا أحتاج أن أفعل؟

(تحرير: الإيضاحات)

قمت بتنزيل مكتبة Windows JAI والجرار المستخرجة و DLLs من حزمة التنزيل.

Mainfest:

بيان بيان: 1.0 الحزمة الاسم: جافا التصوير المتقدمة حزمة الرمزية: JAVAX.MEDIA.JAI الإصدار: 1.1.3 Bundle-Classpath: Libs /، JAI_CODEC.JAR، JAI_CORE.JAR، MLIBWRAPPER_JAI.JAR Bundle-FullesexecutionVironment: Javase-1.6 Bundle-NativeCode: Libs / mlib_jai_mmx.dll؛ OSNAME = WindowsXP؛ المعالج = x86، libs / mlib_jai_util.dll؛ OSNAME = WindowsXP؛ المعالج = x86، libs / mlib_jai.dll؛ OSNAME = WindowsXP؛ المعالج = X86 تصدير الحزمة:
هل كانت مفيدة؟

المحلول

إعلان Bundle-NativeCode كتلة لا تبدو صحيحة. وفقا لمواصفات OSGI (التي أوصي بها بشدة - إنها مستقيمة للغاية)، يجب تحديد جميع المكتبات لمنصة واحدة في الفقرة نفسها، بحيث يغيرها إلى:

Bundle-NativeCode: libs/mlib_jai_mmx.dll; libs/mlib_jai_util.dll; libs/mlib_jai.dll; 
 osname=WindowsXP; 
 processor=x86

بشكل عام، لا أوصي بتدحرج برامجك الحزمة الخاصة بك إذا كنت تستطيع العثور عليها في مكان آخر (هذا واحد بسيط جدا إلى جانب جزء الرمز الأصلي). في هذه الحالة، وجدتهم 2 منهم في الربيع مخزن. وبعد لا يشمل الجزء الرمز الأصلي - ربما بسبب مشكلات الترخيص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top