Actuellement, j'ai les fichiers DLL (rfid.dll; cpl.dll; rfidtx.dll;) à la racine de mon paquet. Je fais un Bundle utilitaire pour maintenir le jna.jar et com.sun.jna à l'exportation, comme com.sun.jna.ptr services.Question sur DLL de chargement (à l'aide de la JNA) à l'intérieur d'un faisceau de OSGi
Le Manifeste pour le paquet en question ressemble à ceci:
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
Dans mon code, l'interface JNA est déclarée comme:
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("rfid",
CLibrary.class);
............
}
Quand je en cours d'exécution, il y a des messages d'exception affichés . L'exception racine est:
java.lang.UnsatisfiedLinkError: Unable to load library 'rfid'
Alors, comment puis-je résoudre ce problème? J'espère que quelqu'un peut m'aider.
j'ai posé exactement la même question, il y a une réponse facile: [Charger DLL (à l'aide de la JNA) à l'intérieur d'un faisceau de OSGi] (http://stackoverflow.com/questions/1375550/load-dll-using-jna-inside- un-osgi faisceau) –