java调用com对第三方软件进行操作
2016-12-06 11:43
696 查看
项目需要对第三方软件进行操作
给出的得是com接口 ,于是我们选择使用java调用com完成操作
java调用com有几种jar包可以使用
如jacob(java com bridge),jawin(貌似2005年是最后的更新时间),com4j(貌似是对企业级客户收费,1999刀)
我们选择了jacob作为我们的jar包
网上使用这个jar包对word进行操作的文章不少
ActiveXComponent comObj=new ActiveXComponent("TruckSim.Application");
Dispatch truckobject=(Dispatch)comObj.getObject();
Dispatch.call(truckobject, "GoHome");
Dispatch.call(truckobject,"DeleteDataSet","","News","External Control of Runs");
DeleteDataSet
是方法名 方法名后面可以带多个参数
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:At Invoke of: DeleteDataSetDescription: 8002000e /
无效的参数数目。
报错:无效的参数数目
这个错误是因为你方法的参数缺少或者多了导致的,注意: 输出参数也需要填上
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:At Invoke of: SetTableDescription: 80020005 /
类型不匹配。报错:类型不匹配
参数的类型不对,表示你的输入参数类型不对,Variant我遇到了double[][]
的输入参数 ,尝试了各种方法都不对原来在jacob中需要将数组变成SafeArray的类型
下面举个例子:Double[][] a={{1.2,3.3},{3.3,4.3}};SafeArray safeArray=new SafeArray(Variant.VariantDouble, 2, 2); for(int i = 0; i < 2; i++) { for (int
j = 0; j < 2; j++) { // set the value of safearray[i][j] to value polyPoints[i][j] safeArray.setDouble(i, j, kk[i][j]); System.out.println(kk[i][j]); }然后将safearray填入参数所在位置,成功将double[][]
执行
但是
在输出参数位置,我选择了String,StringBuffer,StirngBuilder,Variant.VariantString都没有能够输出正确的返回值
Variant a=New Variant(Variant.VariantString,true)
报错
无效的被呼叫方 没有找到有效的返回方法,目前正在使用python java未找到有效的COM返回
给出的得是com接口 ,于是我们选择使用java调用com完成操作
java调用com有几种jar包可以使用
如jacob(java com bridge),jawin(貌似2005年是最后的更新时间),com4j(貌似是对企业级客户收费,1999刀)
我们选择了jacob作为我们的jar包
网上使用这个jar包对word进行操作的文章不少
ActiveXComponent comObj=new ActiveXComponent("TruckSim.Application");
Dispatch truckobject=(Dispatch)comObj.getObject();
Dispatch.call(truckobject, "GoHome");
Dispatch.call(truckobject,"DeleteDataSet","","News","External Control of Runs");
DeleteDataSet
是方法名 方法名后面可以带多个参数
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:At Invoke of: DeleteDataSetDescription: 8002000e /
无效的参数数目。
报错:无效的参数数目
这个错误是因为你方法的参数缺少或者多了导致的,注意: 输出参数也需要填上
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered:At Invoke of: SetTableDescription: 80020005 /
类型不匹配。报错:类型不匹配
参数的类型不对,表示你的输入参数类型不对,Variant我遇到了double[][]
的输入参数 ,尝试了各种方法都不对原来在jacob中需要将数组变成SafeArray的类型
下面举个例子:Double[][] a={{1.2,3.3},{3.3,4.3}};SafeArray safeArray=new SafeArray(Variant.VariantDouble, 2, 2); for(int i = 0; i < 2; i++) { for (int
j = 0; j < 2; j++) { // set the value of safearray[i][j] to value polyPoints[i][j] safeArray.setDouble(i, j, kk[i][j]); System.out.println(kk[i][j]); }然后将safearray填入参数所在位置,成功将double[][]
执行
但是
在输出参数位置,我选择了String,StringBuffer,StirngBuilder,Variant.VariantString都没有能够输出正确的返回值
Variant a=New Variant(Variant.VariantString,true)
报错
无效的被呼叫方 没有找到有效的返回方法,目前正在使用python java未找到有效的COM返回
相关文章推荐
- java调用存储过程进行增、删、查、改操作(源代码)
- (java使用myeclipse)调用webservice接口进行操作
- Java实现调用Jerasure库对文件进行编解码操作
- java中通过调用oracle的function进行数据库操作
- java操作word模板不借助第三方软件包
- 利用Java 第三方控件 jxl对M$ Excel 进行全操作
- JAVA操作Word(jacob调用com)
- JAVA 调用C 语言程序,并且进行传参收结果等操作
- java应用中,调用第三方api如何处理异常(系统异常、操作异常等等)
- JAVA 调用C 语言程序,并且进行传参收结果等操作
- 在java中快速调用第三方软件
- NDK学习笔记<三> java调用JNI进行简单加减,加密操作
- JSP操作技巧(摘自www.java-cn.com)
- 自动调用杀毒软件对文件进行杀毒
- 从ApplicationResources.properties中读取数据对文件进行操作.java
- JAVA操作属性文件,可进行读、写、更改
- JAVA操作数据库----- http://blog.sina.com.cn/andyfang
- Java调用COM的中间件Jintegra初探
- 通过Java直接对Excel文件进行操作
- java 实现将传入的两个集合进行并,交,联集,差操作