这个问题可能早就在SO上提出过了,请放心,我确实检查了所有可用的解决方案。仍然无法得到它的运行Tomcat中的本地库UnsatisfiedLinkError + Windows + eclipse
我的问题是完全一样在这个岗位Shared native library in Tomcat UnsatisfiedLinkError
独立的Java应用程序运行得很好描述。然而在Tomcat(9),它无法运行并抛出
java.lang.UnsatisfiedLinkError: third_party.org.chokkan.crfsuite.crfsuiteJNI.swig_module_init()V
at third_party.org.chokkan.crfsuite.crfsuiteJNI.swig_module_init(Native Method)
at third_party.org.chokkan.crfsuite.crfsuiteJNI.<clinit>(crfsuiteJNI.java:87)
at third_party.org.chokkan.crfsuite.Tagger.<init>(Tagger.java:39)
我知道,我的DLL被加载后,还我检查了我的DLL是在文件夹中,是在PATH变量。我也检查了正在加载的类,并且事实上正在加载DLL。
我注意到3种类型的UnsatisfiedLinkError在SO
1)java.lang.UnsatisfiedLinkError中:third_party.org.chokkan.crfsuite.crfsuiteJNI.swig_module_init()V 2)java.lang.UnsatisfiedLinkError中: third_party.org.chokkan.crfsuite.crfsuiteJNI.swig_module_init()B 3)类加载器加载两次。
我相信V,最后确实表示一些东西。但我无法弄清楚究竟是什么?
我在上面分享的SO帖子中接受的答案之一声称它与版本有关。我不明白这是一个可接受的解决方案,因为它作为一个独立的Java应用程序运行时效果很好。
浪费了很多时间,任何帮助都是可观的。
感谢 Chahat
'B'(字节)和'V'(无效)属于'swing_module_init()V'方法的签名(S ),并且只告诉返回类型是'Void'(或者在另一种情况下是'Byte'),请参阅:http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/ types.html – nyyrikki
感谢nyyrikki的答案, 请问如何解决它?使本地函数在Web应用程序(tomcat)中调用工作? 谢谢 – user4772933
在Tomcat中运行时(不仅仅是加载,而是调用本地方法),它是否适用于您?如果我从上面正确理解了你的描述,那么你更关心的是stackoverflow上的链接问题。如果你向我们展示用javah生成的头文件,它也会有所帮助。 – nyyrikki