我正在尝试实现一个简单的应用程序,它使C ++能够回调到Java中。对此,我发现麻省理工学院的一些人多年前写的一些例子: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
是带有main
的java类。谁能让我对我做错了什么有所了解?
答案 0 :(得分: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");
希望这对你有帮助!