現在、バンドルのルートに DLL ファイル (rfid.dll;cpl.dll;rfidtx.dll;) があります。jna.jar を保持するユーティリティ バンドルを作成し、com.sun.jna、com.sun.jna.ptr をサービスとしてエクスポートします。
問題のバンドルのマニフェストは次のようになります。
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ServiceImpl
Bundle-SymbolicName: osgi.mti.serviceImpl
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: ZTESOFT
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: osgi.mti.service,
org.osgi.service.component;version="1.1.0",
com.sun.jna,
com.sun.jna.ptr
Service-Component: OSGI-INF/component.xml
Bundle-NativeCode: rfid.dll;cpl.dll;rfidtx.dll;
osname=WindowsXP;
processor=x86
私のコードでは、JNA インターフェイスは次のように宣言されています。
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("rfid",
CLibrary.class);
............
}
実行すると、いくつかの例外メッセージが表示されます。根本的な例外は次のとおりです。
java.lang.UnsatisfiedLinkError: Unable to load library 'rfid'
では、どうすればこの問題を解決できますか? 誰かが私を助けてくれることを願っています。