2016-02-12 2 views
0

Я пытаюсь реализовать простое приложение, которое позволяет C++ выполнять обратные вызовы в Java. Для этого, я нашел несколько примеров, написанных много лет назад некоторые люди в MIT: https://github.com/swig/swig/tree/master/Examples/java/callbackjava.lang.UnsatisfiedLinkError при попытке следовать примеру MIT при использовании SWIG обратных вызовов C++

Однако при попытке запустить мое собственное приложение, я получаю

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.swig.demo.SwigDemo3JNI.swig_module_init()V at com.swig.demo.SwigDemo3JNI.swig_module_init(Native Method) at com.swig.demo.SwigDemo3JNI.<clinit>(SwigDemo3JNI.java:30) at com.swig.demo.Caller.<init>(Caller.java:39) at com.swig.demo.SwigTest.main(SwigTest.java:47)

Где SwigDemo3JNI является Swig сгенерированного Java класс, и SwigTest - это класс java с main. Может ли кто-нибудь дать мне некоторое представление о том, что я делаю неправильно?

+0

Это библиотека .dll? –

+0

@BahramdunAdil да, он должен выплеснуть библиотеку dll. –

ответ

0

Вы можете установить путь к библиотеке при инициализации приложения, приведенный ниже код используется, чтобы сделать это:

String libraryPath = "c:/your/path/to/dll/lib"; 

System.setProperty("java.library.path", libraryPath); 
Field sysPath = ClassLoader.class.getDeclaredField("sys_paths"); 
sysPath.setAccessible(true); 
sysPath.set(null, null); 
System.loadLibrary("the_dll_lib_name"); 

Надеются, что это помогут вам!

Смежные вопросы