Tomcat中的本地库UnsatisfiedLinkError + Windows + eclipse

这个问题可能早就在SO上提出过了,请放心,我确实检查了所有可用的解决scheme。 仍然无法让它运行

我的问题与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文件夹是在PATHvariables。 我也检查了正在加载的类,并且事实上正在加载DLL。

我已经注意到三种types的UnsatisfiedLinkError

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 ,最后确实表示了一些东西。 但我无法弄清楚究竟是什么?

我在上面分享的SOpost中被接受的答案之一声称它与版本有关。 我不明白这是一个可接受的解决scheme,因为它作为一个独立的Java应用程序运行时工作得很好。

浪费了很多时间,任何帮助都是可观的。

谢谢Chahat

Solutions Collecting From Web of "Tomcat中的本地库UnsatisfiedLinkError + Windows + eclipse"

我面临同样的问题。 我终于找到了解决办法。 这个对我有用。

首先,我安装了libLBFGS和crfsuite。 你可以在这里找到这个指令( http://www.chokkan.org/software/crfsuite/manual.html )。 libcrfsuite.so将安装在/ usr / local / lib中

其次,我编辑tomcat配置为了加载本地库。 我在tomcat的bin文件夹中创建setenv.sh,设置CATALINA_OPTS变量的内容为:

export CATALINA_OPTS =“ – Djava.library.path = / usr / local / bin:/ usr / local / lib”

最后,我使用自定义的ServletContextlistner,并通过System.load()显式加载libcrfsuite.so。 我去这个链接下载lib( https://github.com/vinhkhuc/jcrfsuite/tree/master/src/main/resources/crfsuite-0.12

我有一个类似的问题,但不是与Tomcat。 我结束了复制他们的一个类的逻辑,只是调用:

 static { try { CrfSuiteLoader.load(); } catch (Exception e) { throw new RuntimeException(e); } }