Je souhaite séparer certaines DLL des classes JNI natives associées.DLL séparée et appel natif dans un plugin différent
Plugins:
- dans le plugin A DLL sont placés et chargés lorsque le module est chargé.
- Dans plug-in B (dépendent A) les classes JNI sont placés qui comprennent la méthode native appelle les DLL dans A.
Lors de l'exécution i obtenir un UnsatisfiedLinkError parce que la classe JNI ne peut pas être trouvé. J'essaie de mettre à jour la logique de classloader en mettant à jour les fichiers MANIFEST:
Plugin A:
Eclipse-BuddyPolicy: registered
Plugin B:
Eclipse-RegisterBuddy: A
Mais ceci est aussi ne fonctionne pas. Connaissez-vous une solution?
EDIT:
MANIFESTE 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
MANIFESTE 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
Personne n'a une idée? –