使用ltp4j碰到Can't find dependent libraries报错信息的问题解决
项目中使用了哈工大的自然语言处理模块ltp4j,使用idea工具集成到项目中之后,在本机运行没有问题,一切正常。打成war包,部署到服务器上,使用的时候报错Can't find dependent libraries,比较明显就是缺少依赖库。
1 程序缺少依赖库的问题分析
和引入其他很多的C++程序一样,我们经常碰到这个问题。程序在有的机器上能运行,在有的机器上不能运行,是否运行完全靠运气。这是因为C++的dll文件,它会依赖很多的C++库,这些C++库在不同的操作系统中安装的不太一样,有的安装少,有的安装多一些。这个问题在我们安装游戏软件的时候也会碰到,如果缺少一些C++的库文件,游戏也不能安装成功。
既然缺少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的依赖库,并对没有找到的依赖库标红。

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

这时候,就表示我们补全了ltp4j-0.1.0-SNAPSHORT.dll的依赖库,应该能够正常运行了,这时候我们在进行运行测试。问题就解决了。
3 结语
该问题具有普遍性,针对所有的C++程序缺少依赖库的问题都有效。另外,使用ltp4j-0.1.0-SNAPSHORT.dll的时候,在缺少依赖库的时候,还可能报其他错误信息,java.lang.NoClassDefFoundError,也就是程序在编译的时候没有问题,但是,运行的时候,由于缺少依赖库,所以会报错类没有定义。这个问题,如果没有前面缺少依赖库的信息提示,只看java.lang.NoClassDefFoundError可能很难找到问题所在。
使用ltp4j碰到Can't find dependent libraries报错信息的问题解决的更多相关文章
- MAC系统如果碰到报错信息:sudo:command not found
** 一般要考虑最近是否有别人或者自己修改过环境变量,这种报错往往是因为环境变量设置错误导致的. ** 1. 首先要获得创建,或者是打开bash_profile的权限,请在命令行中输入: export ...
- Android 友盟SDK 终极解决报错:SocialSDK_QQZone_2.jar contains native libraries that
转自:http://bbs.umeng.com/thread-6552-1-2.html 报错信息:The library `SocialSDK_QQZone_2.jar` contains nati ...
- System.load(PWConnector.dll)加载异常 Can't find dependent libraries
System.load(PWConnector.dll)加载异常 Can't find dependent libraries 错误信息:D:\PWAdapter\PWConnector.dll: C ...
- java 调用 r, Can't find dependent libraries
rJava是一个R语言和Java语言的通信接口,通过底层JNI实现调用,允许在R中直接调用Java的对象和方法. 步骤: 1.本地系统: Win7 64bit 企业版, jdk1.8.0_45,R3. ...
- 8.2 sikuli 集成进eclipse 报错:Getting the VisionProxy.dll: Can not find dependent libraries...
如果在执行脚本的时候出现以下错误: Getting the VisionProxy.dll: Can not find dependent libraries... 把Sikuli X 的libs目录 ...
- opencv 无法使用 dll 动态链接库 UnsatisfiedLinkError java.library.path Can't find dependent libraries
System.loadLibrary(Core.NATIVE_LIBRARY_NAME) 使用如上方法加载本地 dll文件. 一般会出现两种错误: 1. UnsatisfiedLinkError ja ...
- linux使用wkhtmltopdf报错error while loading shared libraries:
官网提示 linux需要这些动态库.depends on: zlib, fontconfig, freetype, X11 libs (libX11, libXext, libXrender) 在li ...
- 10gRAC运行srvctl报错error while loading shared libraries:
数据库10g才会有这个错,因为11g的grid和oracle是分开的. [oracle@news01 orcl]$ srvctl /u01/app/oracle/db_1/jdk/jre/bin/ja ...
- 运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory
运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such f ...
随机推荐
- NOI2005 维护数列 lg2042
这道题据说是noi题目中算是比较毒瘤的数据结构题了,5k多的代码加上随手写挂细节,我调了两天 题面见https://www.luogu.org/problemnew/show/P2042 (歪个题,这 ...
- AngularJS中transclude用法详解
这篇文章主要介绍了AngularJS中transclude用法,详细分析了transclude的具体功能.使用技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了AngularJS中transcl ...
- AUI前端框架总结
AUI 是Apicloud 的手机端UI第三方,需要引入Apicloud和AUI中的css样式和js框架 **首先:手机项目必须配置config.xml文件 Apicloud官网有详解 ** 其次:程 ...
- batchsize用法 以及实现前向运算的矩阵乘法方式
batchsize用法 以及实现前向运算的矩阵乘法方式 待办 使用batchsize可以把矩阵缩小,采用矩阵乘法的形式可以一次计算多个经过神经网络的结果,然后通过交叉熵进行计算总的损失得到结果. 所以 ...
- 自己动手系列----使用数组实现一个简单的Set
Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复.主要有HashSet和TreeSet两大实现类. ...
- laravel 增强代码提示功能插件
1.在项目根目录命令输入(使用composer安装) composer require barryvdh/laravel-ide-helper 2.在config/app.php中添加代码如下: 'p ...
- JS高级---闭包小案例
闭包小案例 普通的函数 //普通的函数 function f1() { var num = 10; num++; return num; } console.log(f1()); //11 conso ...
- Redis08——Redis五大数据类型 hash
hash Redis中的hash是一个键值对集合 同时又是一个string类型的field和value的映射表,hash特别适合用于存储对象 类似于java里面的Map<String,Objec ...
- 图像变换 - 霍夫线变换(cvHoughLines2)
霍夫变换是一种在图像中寻找直线.圆及其他简单形状的方法,霍夫线变换是利用Hough变换在二值图像中找到直线. 利用CV_HOUGH_PROBABILISTIC,对应PPHT(累计概率霍夫变换)?这个算 ...
- python之路之网络基础
c类地址