1

関連するネイティブ JNI クラスからいくつかの DLL を分離したいと考えています。

プラグイン:

  • プラグイン A では、プラグインのロード時に dll が配置およびロードされます。
  • プラグイン B (A に依存) には、A の DLL のネイティブ メソッド呼び出しを含む JNI クラスが配置されます。

JNI クラスが見つからないため、実行時に UnsatisfiedLinkError が発生します。MANIFEST ファイルを更新して、クラスローダー ロジックを更新しようとしています。

プラグイン A:

Eclipse-BuddyPolicy: registered

プラグイン B:

Eclipse-RegisterBuddy: A

しかし、これも機能していません。解決策を知っていますか?

編集:

マニフェスト 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
4

1 に答える 1