Загрузить DLL в Netbeans
Я пытаюсь загрузить файлы DLL в Netbeans 7.0.1,
Код
dll = (RRHFEK02DLL)Native.loadLibrary("RRHFEK02DLL.dll", RRHFEK02DLL.class);
utility = (Utilities)Native.loadLibrary("Utilities.dll",Utilities.class);
wraper =(RRHFEK02Wrapper)Native.loadLibrary("RRHFEK02Wrapper.dll", RRHFEK02Wrapper.class);
в первой строке нет ошибок, эта строка была в демонстрационной версии провайдера, теперь я хочу загрузить еще две dll, я добавил следующие две строки, а также добавил файлы dll в библиотеку, но я получил ошибку
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError:
Unable to load library 'Utilities.dll': The specified module could not
be found.
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:166)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:239)
at com.sun.jna.Library$Handler.<init>(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:393)
at com.sun.jna.Native.loadLibrary(Native.java:378)
at rrhfek02.RRHFEK02View.<init>(RRHFEK02View.java:87)
at rrhfek02.RRHFEK02App.startup(RRHFEK02App.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Я прошел через те же / связанные вопросы, но не получил решения. Поэтому, пожалуйста, дайте мне предложение, если кто-нибудь есть.
2 ответа
Вам нужно вставить .dll
расширение (не требуется на Mac, если расширение .framework
, В моей системе с моей структурой папок проекта netbeans:
Lib
+ src + EDSDK -dll -EDSDK -headers +Other Files
Выполнение:
this.EDSDK = (EdSdkLibrary) Native.loadLibrary("EDSDK/dll/EDSDK.dll", EdSdkLibrary.class
загружает это эффективно. Перед загрузкой вы можете попробовать что new File("RRHFEK02DLL.dll").exists()
возвращается. Если false
тогда ваш путь неверен. Если true
тогда проблема в другом
Удалить ".dll"
на Яве. То есть:
dll = (RRHFEK02DLL) Native.loadLibrary("RRHFEK02DLL", RRHFEK02DLL.class);
utility = (Utilities) Native.loadLibrary("Utilities", Utilities.class);
wraper = (RRHFEK02Wrapper) Native.loadLibrary("RRHFEK02Wrapper", RRHFEK02Wrapper.class);
Не изменяйте свое фактическое имя DLL-файла!