1

我正在尝试实现一个简单的应用程序,它使 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)

SwigDemo3JNISwig 生成的 Java 类在哪里,并且是SwigTest带有main. 谁能给我一些关于我做错了什么的见解?

4

1 回答 1

1

您可以在初始化应用程序时设置库路径,下面的代码用于执行此操作:

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");

希望这对你有帮助!

于 2016-02-12T11:18:33.617 回答