总结java关于jacob操作word这几天遇到的问题!

由于这几天的客户需求使用到了java关于jacob操作word的问题,下面对这几天遇到的问题进行一下总结:

  本机第一次使用jacob的时候,本机装的WPS接下来一路畅通,直到最后完成word的导出功能,部署正式环境后出现问题了,问题如下:

1、常见问题为jacob.jar 和 jacob.dll两个文件不匹配造成的,建议到官网现在最新的匹配包,或者下载我上传的资源,地址为:http://download.csdn.net/download/a_java_stu/10154851,不要怪我要的分数高,无奈我这边最小只能选5分,都是开发的 可以理解分数的重要性,我已经选的是最低的啦,现在没有0积分下载了 不知道为什么。

2、报Can’t load IA 32-bit .dll on a AMD 64-bit platform 这个错误是因为dll文件对32位和64位没有放对位置,如果不确定32位还是64位,我建议(个人使用中发现的)32位和64位在相应的位置都放。

3、下面对dll文件放的位置进行一下说明

根据我的项目说:

1)win7和win10 

在jdk/jre/bin中放两份dll(32位和64位),jdk\jre\lib\ext中放对应的jar包。其他地方我什么都没有放程序运行正常。

2)win server 2008

在jdk/bin放两份,jre/bin放32位,jdk/jre/bin中放32位,tomcat中放32位,sys32/sys64都是双份,测试程序一切正常。

3)

tomcat/lib中建议放jacob.jar。

4、我的程序在初始化word的时候抛出异常

ComThread.InitSTA();
        if (this.word == null) {
            /* 初始化应用所要用到的对象实例 */  
       
try{
       
this.word = new ActiveXComponent("Word.Application");   //测试是否可以正常初始化word
       
}catch(Exception e){
       

       
e.printStackTrace();
       
}
            /* 设置Word文档是否可见,true-可见false-不可见 */  
            this.word.setProperty("Visible", new Variant(false));   
            /* 禁用宏 */  
            this.word.setProperty("AutomationSecurity", new Variant(3));   


就是在我标红的这个地方,前提是dll文件已经放对了位置和排除版本不一致的情况,在网上各种搜索未能解决,突然一个

想法是,是否和加载的office版本有关系,所以卸载了office2010 特意下载了一个0ffice2010 64位的装上,再次测试,程序正常执行。

不知道是否和这个有关系(等待具体的验证),但是切换office版本之后的确都可以了!

5、可以到控制面板--组件服务--计算机--我的电脑--DCOM配置下面寻找”Microsoft WORD97-2003”

(这拿word做例子,其他的也相似)的节点右键单击该节点,选属性 ,切换到标识选项卡,改为“交互式用户”,

最后点击确定完成。

6、个人心得:如果该放的地方、该测试的代码都测试了就是不行,建议clean一下项目,不要完全依赖IDE。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值