سؤال

أريد فصل بعض ملفات DLL عن فئات JNI الأصلية المرتبطة بها.

الإضافات:

  • في المكون الإضافي ، يتم وضع DLLs وتحميلها عند تحميل المكون الإضافي.
  • في المكون الإضافي B (يعتمد على أ) يتم وضع فئات JNI والتي تتضمن استدعاء الطريقة الأصلية ل DLLs في A.

في وقت التشغيل أحصل على UnsatisfiedLinkError لأنه لا يمكن العثور على فئة JNI.أحاول تحديث منطق أداة تحميل الفصل عن طريق تحديث ملفات البيان:

البرنامج المساعد أ:

Eclipse-BuddyPolicy: registered

البرنامج المساعد ب:

Eclipse-RegisterBuddy: A

ولكن هذا أيضا لا يعمل.هل تعرف الحل؟

يحرر:

البيان أ:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: xxx ;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: xxx.Plugin
Bundle-Vendor: xxx
Bundle-Localization: plugin
Bundle-NativeCode: native/dll/x1.dll;
 native/dll/x2.dll;
 native/dll/x3.dll;
 native/dll/x4.dll;
 native/dll/x5.dll;
 native/dll/x76.dll;
 native/dll/x.dll;
 native/dll/x7.dll;osname = win32; processor = x86
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.ui,
 org.apache.commons.logging
Bundle-ClassPath: .
Eclipse-AutoStart: true
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
Eclipse-BuddyPolicy: registered
Export-Package: xxx

البيان ب:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: xxx;singleton:=true
Bundle-Version: 2.1.16
Bundle-Vendor: xxx
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.ui,
 org.apache.commons.lang,
 org.apache.commons.logging,
 A
Export-Package: xxx
Bundle-ClassPath: .
Bundle-Activator: xxx
Eclipse-RegisterBuddy: A
Eclipse-AutoStart: true
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
هل كانت مفيدة؟

المحلول

اقتراحي المباشر هو تحويل المكون الإضافي B إلى جزء من المكون الإضافي A بدلاً من مكون إضافي منفصل، مما سيؤدي إلى حل المشكلات.

ومع ذلك، أعتقد أنك قد غيرت بياناتك؛يجب أن يكون البرنامج المساعد B الذي يحاول إجراء مكالمات JNI Eclipse-BuddyPolicy:registered, ، ويجب أن يعتمد المكون الإضافي A على المكون الإضافي B ويسجل فيه.

وقيل بعد القراءة مستندات تحميل الأصدقاء, ، لست متأكدًا من أن سياسة تحميل الأصدقاء تعمل مع ملفات فئة غير Java.

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