Я хочу отделить некоторые библиотеки DLL от связанных собственных классов JNI.
Плагины:
- В плагине А находятся dll и
загружен, когда плагин загружен.
- В
Плагин B (зависит от A) JNI
размещены классы, которые включают в себя
вызовы нативных методов для DLL в A.
Во время выполнения я получаю UnsatisfiedLinkError, потому что класс JNI не может быть найден.
Я пытаюсь обновить логику загрузчика классов, обновив файлы MANIFEST:
Плагин A:
Eclipse-BuddyPolicy: registered
Плагин B:
Eclipse-RegisterBuddy: A
Но это тоже не работает.
Вы знаете решение?
EDIT:
Манифест 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
МАНИФЕСТ B:
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