我是JNI的新手,我在Windows 7中成功执行了一个独立的JNI应用程序,在Visual Studio 2012中编写了C ++代码。但是当我尝试在apache-tomcat / webapps文件夹中创建一个新的JNI项目时,尝试执行java类,我得到以下错误 -
Exception in thread "main" java.lang.UnsatisfiedLinkError: adjni.getStringArrays
(Ljava/lang/String;Ljava/lang/String;)[[Ljava/lang/String;
at adjni.getStringArrays(Native Method)
at adjni.main(adjni.java:13)
虽然我遇到了很多类似的问题,但我还没能找到合适的解决方案。我不知道要设置哪些环境变量以及需要进行哪些其他更改。我认为问题是java类无法找到dll文件,但我不知道如何解决问题。请帮忙 。
答案 0 :(得分:0)
通常,当您在调用System.loadLibrary("your library name");
之前尝试调用本机方法时,会发生UnsatisfiedLinkError
以下说明可能对您有所帮助: - 确保Web应用程序在Web应用程序初始化期间加载库(例如:在ServletContextListener实现类中,contextInitialized方法)。 - 确保可以从tomcat访问本机库文件,检查类路径字符串(例如:-Djava.library.path或LD_LIBRARY_PATH(linux)或PATH(Windows))。
你是如何在独立运行应用程序的?你能写你的命令行吗?你把你的本地图书馆放在哪里了?
答案 1 :(得分:0)
将dll文件包含在/ bin文件夹中,并将java文件和类文件放在/ WEB-INF / classes文件夹中。这对我有用。