最近作一個系統的維護改善工做,歷來沒接觸過的業務,代碼中沒有一句註釋。各類bug堆積轉狂。java
一條改到導出word的功能的時候,系統使用了jacob操做可是系統一直報錯,tomcat
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob in java.library.patheclipse
查了下資料 ,基本都是說沒正確的放入library中,並提供了3處以上的位置,實際測試後只要放在\Java\jdk1.6.0_32\jre\bin下就能夠了。測試
從新配置了myeclipse的jre spa
選擇了tomcat的jdk調試
從新啓動後發現系統仍然報着個錯誤,考慮我用的是win7 64位 安裝的是64位的jdk,從新下載了一個32位的安裝了一下,仍然用jacob-1.17-M2-x86.dll 。依據報如上的錯誤。ip
因而我將dll從新命名成jacob.dll運行在系統中。文檔
系統報錯java.lang.UnsatisfiedLinkError: com.jacob.com.Dispatch.createInstance(Ljava/lang/String;)V部署
我查了一下大致上是說jar和dll的版本存在衝突,我調試了用最新的版本仍然存在這個問題。it
因而懷疑是本身的項目有問題,可是也沒有找到什麼疑問點。就從新寫了一個新項目,只將jacob和測試代碼部署上,成功的運行了項目。忽然明白了必定是jar包中存在什麼衝突。
打開lib 各類版本的jar包堆積如山。主要是懷疑和導出有關的jar包,這個項目中能夠說是把全部能找到的有關word操做的jar包都找齊了,一個個排除最終定位到了java2word.jar上,解壓開一看裏邊包含着jacob
看來問題是出在這個位置上了。java2word是com橋jacob包的封裝,它專門針對word文檔的操做作了封裝,
java2word在系統中多是被用來將word轉成pdf格式文檔了。
直接糾結了。