관련 네이티브 JNI 클래스에서 일부 DLL을 분리하고 싶습니다.다른 플러그인에서 DLL과 네이티브 호출을 분리하십시오.
플러그인 :
- DLL이 플러그인에서는이 위치 및 플러그인이로드 될 때 가로드됩니다.
- 는 플러그인 B에서 JNI 클래스는 기본 방법은 내가 때문에 JNI 클래스는하지을 수 UnsatisfiedLinkError를 얻을 런타임시
A의 DLL에 대한 호출을 포함하는 배치 (A에 따라 달라집니다) 찾을 수 있습니다. 나는 매니페스트 파일을 업데이트하여 클래스 로더의 논리를 업데이트하려고 :
Eclipse-BuddyPolicy: registered
플러그인 B :
플러그인 A를
Eclipse-RegisterBuddy: A
을하지만이 또한 작동하지 않습니다. 솔루션을 알고 있습니까?
편집 :
MANIFEST 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 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
아무도 아이디어가 없습니까? –