У меня проблема с загрузкой DLL с помощью JNA.Хотя я могу отлаживать код в затмении, я получаю исключение при экспорте и запускаю его как файл jar:
java.lang.UnsatisfiedLinkError: невозможно загрузить библиотеку 'SiUSBXp'
Anyидеи, почему он не находит мою dll, когда я запускаю ее как jar-файл?
Спасибо !!!!
public interface SiUSBXp extends StdCallLibrary {
byte SI_GetNumDevices(IntByReference numdevices);
byte SI_GetProductString( int deviceNum, byte[] productString, int options );
byte SI_Open(IntByReference numdevices);
}
static SiUSBXp INSTANCE;
public static void main(String[] args) {
System.setProperty("jna.library.path","SiUSBXp.dll");
HashMap<String, StdCallFunctionMapper> optionMap = new HashMap<String, StdCallFunctionMapper>();
StdCallFunctionMapper myMapper = new StdCallFunctionMapper();
optionMap.put(Library.OPTION_FUNCTION_MAPPER, myMapper);
INSTANCE = (SiUSBXp) Native.loadLibrary("SiUSBXp", SiUSBXp.class, optionMap);
}
------------------ РЕДАКТИРОВАТЬ ----------------------
DLL находится в той же папке, что и JAR
------------------ EDIT 2 ---------------------
Я только что попытался запустить его в Windows XP, и он работает .. но не в Windows 7 (64-разрядная версия)
------------------ РЕДАКТИРОВАТЬ 3 --------------------- Я решил проблему ... Это было из-за установленных версий Java ... Я удалил их все, изатем только установил версию Java для x86 ... после этого он работал отлично