jacob配置方法及两个常见错误解决
2009-04-10 14:55
621 查看
通过Jacob可以很方便的通过编程操作Word等MS组件,
http://blog.csdn.net/guoxiaoshou2000/archive/2004/12/07/208024.aspx
);而且附上了源码。
但是最近有些朋友跟我联系,说无法正确执行我提供的代码,提示的错误如下:
com.jacob.com.ComFailException: Invoke Failed: Documents at com.jacob.com.Dispatch.invokev(Native Method) at
com.jacob.activeX.ActiveXComponent.getProperty(ActiveXComponent.java) at wordtohtml.change(wordtohtml.java:62)
at wordtohtml.main(wordtohtml.java:104)
com.jacob.com.ComFailException: Invoke Failed: Quit
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.activeX.ActiveXComponent.invoke(ActiveXComponent.java) at wordtohtml.change(wordtohtml.java:77) at wordtohtml.main(wordtohtml.java:104)
Exception in thread "main"
这个错误以前我也碰到过,在这里跟将我的解决方法说明一下。
造成这种错误的一种原因是jdk与你的jacob版本不相符合,如果使用jacob1.6而使用jdk1.4或以上版本,那么肯定会出这种错误,解决方法可以升级你的jacob.dll版本——这个在yahoo的jacob讨论组上面可以有下载文件名称是:jacob_jre142fix_bin。
另外注意的是,这样升级后仍然可能出错,这样的话,建议采用下面的配置方法。
jdk1.3.1_15 + jacob.jar 1.7 + jacob.dll的jacob_jre142fix_bin版本
其中jdk可以直接从sun的网站下载,下载链接为:
http://192.18.97.50/ECom/EComTicketServlet/BEGINBB924C3A202206BE2FD20BEBE583F482/-2147483648/829060395/1/557666/557654/829060395/2ts+/westCoastFSEND/j2sdk-1.3.1_15-oth-JPR/j2sdk-1.3.1_15-oth-JPR:7/j2sdk-1_3_1_15-windows-i586.exe
注意,下载完毕以后是一个文件名称很长的文件,将其改名为jdk1.3.1_15.exe即可。
jacob.jar 1.7
的下载地址如下:
http://danadler.com/jacob/jacobSrc_17.zip
注意,不要使用它里面提供的jacob.dll。
jacob.dll可从yahoo的jacob讨论组下载(呵呵,给它做广告了)。
下载完毕所有的文件以后,将jacob.jar解压然后将com和META-INF中的文件分别添加到jdk的lib中的tools.jar中的对应文件夹中(如果不想要这样,通过环境变量设置也可以,但是尝容易出错),而jacob.dll则可以直接放到system32中即可。
这里还要注意一点,如果你的jacob.jar和jacob.dll的版本不一致的话,很可能出现下面的错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob in java.libr
ary.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1344)
at java.lang.Runtime.loadLibrary0(Runtime.java:744)
at java.lang.System.loadLibrary(System.java:815)
at com.jacob.com.Dispatch.<clinit>(Dispatch.java)
at openword.open(openword.java:12)
at openword.main(openword.java:48)
或者:
Exception in thread "main" java.lang.UnsatisfiedLinkError: doCoInitialize
at com.jacob.com.ComThread.doCoInitialize(Native Method)
at com.jacob.com.ComThread.Init(ComThread.java)
at com.jacob.com.ComThread.InitMTA(ComThread.java)
at com.jacob.com.ROT.addObject(ROT.java)
at com.jacob.com.JacobObject.<init>(JacobObject.java)
at com.jacob.com.Dispatch.<init>(Dispatch.java)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java)
at openword.open(openword.java:12)
at openword.main(openword.java:48)
这里要特别注意这一点。
好了,到这里所有的配置就完毕了,以上就是我的一些经验了,如果有不对的地方请大家到我的blog(http://blog.csdn.net/guoxiaoshou2000)告诉我。
上面的方法已经经过我个人测试,这样配置的话,应该是没有问题了——不过如果你不能用jdk1.3那可以自己试验其他的办法,我这边有时间也会继续研究的。祝大家好运!
http://blog.csdn.net/guoxiaoshou2000/archive/2004/12/07/208024.aspx
);而且附上了源码。
但是最近有些朋友跟我联系,说无法正确执行我提供的代码,提示的错误如下:
com.jacob.com.ComFailException: Invoke Failed: Documents at com.jacob.com.Dispatch.invokev(Native Method) at
com.jacob.activeX.ActiveXComponent.getProperty(ActiveXComponent.java) at wordtohtml.change(wordtohtml.java:62)
at wordtohtml.main(wordtohtml.java:104)
com.jacob.com.ComFailException: Invoke Failed: Quit
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.activeX.ActiveXComponent.invoke(ActiveXComponent.java) at wordtohtml.change(wordtohtml.java:77) at wordtohtml.main(wordtohtml.java:104)
Exception in thread "main"
这个错误以前我也碰到过,在这里跟将我的解决方法说明一下。
造成这种错误的一种原因是jdk与你的jacob版本不相符合,如果使用jacob1.6而使用jdk1.4或以上版本,那么肯定会出这种错误,解决方法可以升级你的jacob.dll版本——这个在yahoo的jacob讨论组上面可以有下载文件名称是:jacob_jre142fix_bin。
另外注意的是,这样升级后仍然可能出错,这样的话,建议采用下面的配置方法。
jdk1.3.1_15 + jacob.jar 1.7 + jacob.dll的jacob_jre142fix_bin版本
其中jdk可以直接从sun的网站下载,下载链接为:
http://192.18.97.50/ECom/EComTicketServlet/BEGINBB924C3A202206BE2FD20BEBE583F482/-2147483648/829060395/1/557666/557654/829060395/2ts+/westCoastFSEND/j2sdk-1.3.1_15-oth-JPR/j2sdk-1.3.1_15-oth-JPR:7/j2sdk-1_3_1_15-windows-i586.exe
注意,下载完毕以后是一个文件名称很长的文件,将其改名为jdk1.3.1_15.exe即可。
jacob.jar 1.7
的下载地址如下:
http://danadler.com/jacob/jacobSrc_17.zip
注意,不要使用它里面提供的jacob.dll。
jacob.dll可从yahoo的jacob讨论组下载(呵呵,给它做广告了)。
下载完毕所有的文件以后,将jacob.jar解压然后将com和META-INF中的文件分别添加到jdk的lib中的tools.jar中的对应文件夹中(如果不想要这样,通过环境变量设置也可以,但是尝容易出错),而jacob.dll则可以直接放到system32中即可。
这里还要注意一点,如果你的jacob.jar和jacob.dll的版本不一致的话,很可能出现下面的错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob in java.libr
ary.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1344)
at java.lang.Runtime.loadLibrary0(Runtime.java:744)
at java.lang.System.loadLibrary(System.java:815)
at com.jacob.com.Dispatch.<clinit>(Dispatch.java)
at openword.open(openword.java:12)
at openword.main(openword.java:48)
或者:
Exception in thread "main" java.lang.UnsatisfiedLinkError: doCoInitialize
at com.jacob.com.ComThread.doCoInitialize(Native Method)
at com.jacob.com.ComThread.Init(ComThread.java)
at com.jacob.com.ComThread.InitMTA(ComThread.java)
at com.jacob.com.ROT.addObject(ROT.java)
at com.jacob.com.JacobObject.<init>(JacobObject.java)
at com.jacob.com.Dispatch.<init>(Dispatch.java)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java)
at openword.open(openword.java:12)
at openword.main(openword.java:48)
这里要特别注意这一点。
好了,到这里所有的配置就完毕了,以上就是我的一些经验了,如果有不对的地方请大家到我的blog(http://blog.csdn.net/guoxiaoshou2000)告诉我。
上面的方法已经经过我个人测试,这样配置的话,应该是没有问题了——不过如果你不能用jdk1.3那可以自己试验其他的办法,我这边有时间也会继续研究的。祝大家好运!
相关文章推荐
- 配置SqlServer同步时常见的错误以及解决方法
- oracle 两个常见配置错误解决办法
- MyEclipse 开发 SSH 应用中的两个常见错误的解决方法
- apache服务器配置常见错误以及解决方法
- nginx配置与常见错误解决方法
- 浅谈汽车车载导航仪GPS地图安装配置常见错误的解决方法(如提示缺少Style.ini等)
- 配置SqlServer同步时常见的错误以及解决方法
- nutch安装配置运行时,一些常见的错误与解决方法
- 浅谈汽车车载导航仪GPS地图安装配置常见错误的解决方法(如提示缺少Style.ini等)
- Oracle数据库的网络连接配置以及一些常见错误信息解决方法
- 配置SqlServer同步时常见的错误以及解决方法
- nginx配置与常见错误解决方法
- nginx配置与常见错误解决方法
- Oracle 常见错误及解决方法
- 批处理命令篇--配置免安装mysql 5.6.22, 以及1067错误的一个解决方法
- java开发常见配置错误解决办法
- WCF-OracleDB adapter常见错误解决方法
- nginx的error.log日志常见的几个错误解决方法
- centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课
- Hadoop常见错误问题及解决方法总结二