java.lang.UnsatisfiedLinkError: com.jacob.com.D...

与世无争的帅哥 提交于 2019-12-07 15:30:41

 最近做一个系统的维护改善工作,从来没接触过的业务,代码中没有一句注释。各种bug堆积转狂。

 一条改到导出word的功能的时候,系统使用了jacob操作但是系统一直报错,

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob in java.library.path

 查了下资料 ,基本都是说没正确的放入library中,并提供了3处以上的位置,实际测试后只要放在\Java\jdk1.6.0_32\jre\bin下就可以了。

重新配置了myeclipse的jre 


选择了tomcat的jdk


重新启动后发现系统仍然报着个错误,考虑我用的是win7 64位 安装的是64位的jdk,重新下载了一个32位的安装了一下,仍然用jacob-1.17-M2-x86.dll 。依据报如上的错误。

于是我将dll重新命名成jacob.dll运行在系统中。

系统报错java.lang.UnsatisfiedLinkError: com.jacob.com.Dispatch.createInstance(Ljava/lang/String;)V

我查了一下大体上是说jar和dll的版本存在冲突,我调试了用最新的版本仍然存在这个问题。

于是怀疑是自己的项目有问题,但是也没有找到什么疑问点。就重新写了一个新项目,只将jacob和测试代码部署上,成功的运行了项目。突然明白了一定是jar包中存在什么冲突。

打开lib 各种版本的jar包堆积如山。主要是怀疑和导出有关的jar包,这个项目中可以说是把所有能找到的有关word操作的jar包都找齐了,一个个排除最终定位到了java2word.jar上,解压开一看里边包含着jacob

看来问题是出在这个位置上了。java2word是com桥jacob包的封装,它专门针对word文档的操作做了封装,

java2word在系统中可能是被用来将word转成pdf格式文档了。

直接纠结了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!