Я пытаюсь реализовать простое приложение, которое позволяет C ++ выполнять обратные вызовы в Java. Для этого я нашел несколько примеров, написанных много лет назад некоторыми людьми из MIT: https://github.com/swig/swig/tree/master/Examples/java/callback
Однако при попытке запустить собственное приложение я получаю
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
, Может ли кто-нибудь дать мне некоторое представление о том, что я делаю неправильно?
Вы можете установить путь к библиотеке при запуске приложения, для этого используется код ниже:
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");
Надеюсь, это поможет вам!
Других решений пока нет …