项目中使用了哈工大的自然语言处理模块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. Java大全-吐血整理

    gqzdev

  2. 如何在本地远程连接linux虚拟机上面的mysql

    基础环境: 在linux安装mysql 检查远程的虚拟机是否可以ping通过 查看虚拟机IP为192.168.38.128 cmd窗口ping 192.168.38.128,出现如下界面说明是可以的 ...

  3. IDEA更换背景颜色与字体

    打开IDEA 选择左上角的File  ->  Setting -> Editor  -> Color Scheme  就可以设置  黑白背景  默认为白色  可以选择  Darcul ...

  4. 问题解决:局域网内,为啥别人ping不到我的IP

    试着在本地搭建一个测试环境,成功后却发现同一局域网的同事根本访问不了,他们ping不到我的IP,这可咋整! 询问度娘后,我的问题得到了,以下是我的总结,如果解决不了你的问题,还请继续百度. 方法一:关 ...

  5. 【网站】网站不能在QQ,微信中访问,申诉办法

    使用这个网站申诉即可 https://appeal.anquan.org/

  6. 数据库 oracle 函数

    static OracleConnection mQracleConnecting = null; public static OracleConnection QracleConnecting { ...

  7. 如何去官网上下载tomcat的linux版本

    1.首先进入官网,进入如下位置 2.进入bin文件夹中下载: 原文链接:https://blog.csdn.net/zdb292034/article/details/82433072

  8. css和js处理隔行换色的问题

      <html> <head> <meta charset="utf-8"> <meta name="" conten ...

  9. es2.0的语法学习

    确定文档和查询有多么相关的过程被称为打分(scoring):将查询作为输入,使用不同的手段来确定每一篇文档的得分,将每一个因素最后通过公式综合起来,返回该文档的最终得分.这个综合考量的过程,就是我们希 ...

  10. IntelliJ IDEA 2017.3尚硅谷-----生成 javadoc

    Locale:输入语言类型:zh_CN Other command line arguments:-encoding UTF-8 -charset UTF-8