這個問題可能早就在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