[英]calling c++ function from Java using swig in Windows, getting java.lang.UnsatisfiedLinkError
[英]java.lang.UnsatisfiedLinkError when trying to follow an MIT example on SWIG usage of C++ callbacks
我正在尝试实现一个简单的应用程序,该应用程序可使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
是SwigDemo3JNI
生成的Java类,而SwigTest
是带有main
的Java类。 谁能给我一些我做错事情的见解?
您可以在启动应用程序时设置库路径,以下代码用于执行此操作:
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");
希望这对您有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.