项目中使用了哈工大的自然语言处理模块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报错信息的问题解决的更多相关文章

  1. MAC系统如果碰到报错信息:sudo:command not found

    ** 一般要考虑最近是否有别人或者自己修改过环境变量,这种报错往往是因为环境变量设置错误导致的. ** 1. 首先要获得创建,或者是打开bash_profile的权限,请在命令行中输入: export ...

  2. 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 ...

  3. System.load(PWConnector.dll)加载异常 Can't find dependent libraries

    System.load(PWConnector.dll)加载异常 Can't find dependent libraries 错误信息:D:\PWAdapter\PWConnector.dll: C ...

  4. java 调用 r, Can't find dependent libraries

    rJava是一个R语言和Java语言的通信接口,通过底层JNI实现调用,允许在R中直接调用Java的对象和方法. 步骤: 1.本地系统: Win7 64bit 企业版, jdk1.8.0_45,R3. ...

  5. 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目录 ...

  6. opencv 无法使用 dll 动态链接库 UnsatisfiedLinkError java.library.path Can't find dependent libraries

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME) 使用如上方法加载本地 dll文件. 一般会出现两种错误: 1. UnsatisfiedLinkError ja ...

  7. linux使用wkhtmltopdf报错error while loading shared libraries:

    官网提示 linux需要这些动态库.depends on: zlib, fontconfig, freetype, X11 libs (libX11, libXext, libXrender) 在li ...

  8. 10gRAC运行srvctl报错error while loading shared libraries:

    数据库10g才会有这个错,因为11g的grid和oracle是分开的. [oracle@news01 orcl]$ srvctl /u01/app/oracle/db_1/jdk/jre/bin/ja ...

  9. 运行编译后的程序报错 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 ...

随机推荐

  1. python+selenium自动化禅道登录测试

    本文以禅道登录测试为例,思路主要分openBrowser.openUrl.findElement.sendVals.checkResult.ReadUserdate六部分 openBrowser de ...

  2. HTML文本域标签

    textarea文本域 cols指定列数 rows行数(不够用会自动扩容)

  3. markdown文本编辑学习笔记2

    目录 1.删除线 2.无序列表 4 todo list 5分割符号 6 TOC自动生成目录 7 插入代码块 8 斜体.粗体.删除线.下划线.背景高亮 markdown编辑公式 1.删除线 ~~要删除的 ...

  4. AcWing 482. 合唱队形

    #include<iostream> using namespace std ; ; int f[N],g[N]; int w[N]; int main() { int n; cin> ...

  5. AcWing 1027. 方格取数

    #include<iostream> using namespace std ; ; *N][N][N]; int w[N][N]; int n; int main() { cin> ...

  6. 十分钟理解JavaScript引擎的执行机制

    关注专栏写文章 十分钟理解JavaScript引擎的执行机制 方伟景 千锋前端开发推动市场提升的学习研究者. 4 人赞同了该文章 首先,请牢记2点: JS是单线程语言 JS的Event Loop是JS ...

  7. 使用Python发送、订阅消息

    使用Python发送.订阅消息 使用插件 paho-mqtt 官方文档:http://shaocheng.li/post/blog/2017-05-23 Paho 是一个开源的 MQTT 客户端项目, ...

  8. 一次列表页伪静态的实现;结合nginx rewrite

    nginx伪静态: rewrite ^/(.*)-htm-(.*)$ /$1.php?$2; 将 list-html-t-3-p-4.html 转到list.php?t-3-p-4 t-3-p-4 用 ...

  9. sql语句代码规范

    19年年底的时候领导一直强调代码规范化以前写代码的时候很随意后来越来越看自己写的代码难受逐渐的也像规范化走去,今天又学了一招记录分享一下 这张图就是以前写代码的时候正常情况很是杂乱无章 这张就是规范话 ...

  10. Python_初识面向对象

    楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗 ...