使用ltp4j碰到Can't find dependent libraries报错信息的问题解决

项目中使用了哈工大的天然语言处理模块ltp4j,使用idea工具集成到项目中以后,在本机运行没有问题,一切正常。打成war包,部署到服务器上,使用的时候报错Can't find dependent libraries,比较明显就是缺乏依赖库。java

1 程序缺乏依赖库的问题分析服务器

和引入其余不少的C++程序同样,咱们常常碰到这个问题。程序在有的机器上能运行,在有的机器上不能运行,是否运行彻底靠运气。这是由于C++的dll文件,它会依赖不少的C++库,这些C++库在不一样的操做系统中安装的不太同样,有的安装少,有的安装多一些。这个问题在咱们安装游戏软件的时候也会碰到,若是缺乏一些C++的库文件,游戏也不能安装成功。ide

既然缺乏C++的库文件,咱们的思路就是把C++的库文件安装上,通常能够找C++的补丁库,直接在系统中安装,这种库文件的集合通常都比较大,至少几百兆,或者1个G,甚至于几个G,安装完成后,若是安装的比较全,通常问题就能解决了。但这种方法,有个缺点就是文件太大,安装的东西太多,很耗费资源,若是机器的配置不够高的话,安装这些程序可能直接将机器整的崩溃。并且这个方法也有碰运气的成分,咱们有的时候很难保证咱们找的库文件是全的。工具

另一个思路就是,既然缺乏库文件,那咱们就肯定到底少哪些库文件,只在系统中补充那些缺乏的库文件,这样既能解决问题,也能避免安装大量使用不到的库文件。测试

2 查找缺乏的依赖库后补充到系统网站

因为Can't find dependent libraries的报错,并无告诉咱们缺乏的具体库文件是哪个,咱们只有借助于一些工具来查找缺乏的库文件。Dependency walker是一个很好的定位缺失的dll文件的工具,在http://www.dependencywalker.com/中,咱们能够下载对应系统的软件版本,解压后,直接运行里面的exe文件,在软件中打开咱们的ltp4j-0.1.0-SNAPSHORT.dll,软件就会自动查找dll的依赖库,并对没有找到的依赖库标红。idea

 

 标红的dll文件,就是系统缺乏的库文件,记录下库文件的名称,而后根据名称到www.zhaodll.com网站去查找缺乏的库文件,找到以后下载到本地,而后拷贝到C:\Windows\System32文件夹中。因为缺乏的依赖库可能不止一个,咱们还须要再次利用dependency walker软件打开,查找缺乏的库文件,到zhaodll网站下载,copy到C:\Windows\System32目录中,重复操做,一直到没有红色标出的缺乏dll文件为止。操作系统

 

这时候,就表示咱们补全了ltp4j-0.1.0-SNAPSHORT.dll的依赖库,应该可以正常运行了,这时候咱们在进行运行测试。问题就解决了。blog

3 结语游戏

该问题具备广泛性,针对全部的C++程序缺乏依赖库的问题都有效。另外,使用ltp4j-0.1.0-SNAPSHORT.dll的时候,在缺乏依赖库的时候,还可能报其余错误信息,java.lang.NoClassDefFoundError,也就是程序在编译的时候没有问题,可是,运行的时候,因为缺乏依赖库,因此会报错类没有定义。这个问题,若是没有前面缺乏依赖库的信息提示,只看java.lang.NoClassDefFoundError可能很难找到问题所在。

相关文章
相关标签/搜索