## 问题1:报错 Could not initialize class com.jacob.com.ComThread ### 问题分析 部署在Tomcat的WAR包中没有jacob对应的jar包。 ### 解决方案 将jacob.jar放到WEB-INF/lib中即可解决该问题。 ------------ ## 问题2:报错 VariantChangeType failed ### 问题分析 Jacob 本质上是调用微软的接口操作Word,类似于模拟用户在Office中进行操作,需要一个缓存地址。 当出现该错误时通常是无法访问缓存地址。 ### 解决方案 在64位系统中 请在C:\Windows\SysWOW64\config\systemprofile\目录下新建一个Desktop的文件夹 在32位系统中 请在C:\Windows\System32\config\systemprofile\目录下新建一个Desktop的文件夹 ** 可以使用BAT脚本文件快速创建,因为在服务器重启之后以下两个文件夹可能会被删除! ** ```bash md C:\Windows\SysWOW64\config\systemprofile\Desktop md C:\Windows\System32\config\systemprofile\Desktop ``` ## 问题3:报错no jacob-1.20-x64 in java.library.path ### 问题分析 没有将Jacob的支持库DLL文件放入到相应的文件夹中去。 ### 解决方案 将jacob-1.20-x64.dll和jacob-1.20-x86.dll两个文件放到JDK的安装目录中去,如C:\Program Files\Java\jdk-15.0.2\bin。 ------------ ## 问题4:报错 Can't co-create object ### 问题分析 在Tomcat中部署使用Jacob的项目需要配置服务权限,因为Tomcat是以服务的形式运行。 在开发环境中,是以程序的形式运行并调用Word,只要系统当前用户有操作Word的权限即可。 ### 解决方案 首先需要通过运行窗口打开 comexp.msc -32 服务配置窗口。 打开后的窗口界面如下图所示: 在打开的窗口中选择服务组件 - 计算机 - 我的电脑 - DCOM 配置 然后找到Microsoft Word 93-2003 文档 (Word 2003-2016测试都是此名称) 【PS:WPS也可以,服务名称是 WPS Word】 找到组件后右键属性,在安全标签卡中找到“访问权限”一栏,点击“编辑” 确保SELF拥有本地访问和远程访问的权限。 然后在属性界面中找到标识标签,点击下列用户,输入登陆计算机的用户名和密码即可。 最后右键我的电脑,点击管理,依次进入“服务和应用程序” - “服务”界面 找到 Apache Tomcat 服务,右键属性,在登录选项卡中输入登录计算机的用户名和密码即可。 设置Tomcat服务用户的时候一定在系统的服务管理中设置,不要使用Tomcat管理器自带的账户设置,部分系统会导致设置无效。 ------------ ## 问题5:服务端报错 jacob-1.20-x64.dll already loaded in another classloader ### 问题分析 只有在一个Tomcat运行多个加载jacob库的程序时才会发现,是多jar调用同一个dll冲突导致。 ### 解决方案 不要将jacob.jar包放在web程序中,而是将jacob.jar包放在Web容积自身的lib目录下面就可以了。 Last modification:November 18, 2023 © Reprint prohibited Support Appreciate the author AliPayWeChat Like 4 If you think my article is useful to you, please feel free to appreciate