java 调用windows的COM组件举例(使用JACOB) (转自这里) 最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你能看到数据写入的效果。如下图:发现用jav...
java 调用windows的COM组件举例(使用JACOB) (转自这里)
最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你能看到数据写入的效果。如下图:
发现用java写程序的话需要通过JACOB来调用windows 的com组件,关于jacob网上资料也不多,提供个官网大家自己看看吧:https://sourceforge.net/projects/jacob-project/
下面是一个java调用的小例子,效果是弹出一个消息窗口。

需要引入的包如下:
Jacob_1.16-M1.jar
下载地址如下:http://pan.baidu.com/s/1b2KCSQ
主程序:JaxbTest.java
package com.jacob.burns;
import com.jacob.activeX.ActiveXComponent;
public class JaxbTest {
public static void main(String[] args) {
ComThread.InitSTA();// 启动线程
// 注册表中取得注册MyOcx.dll的ProgId,或clsid。
ActiveXComponent com = new ActiveXComponent("MyOcx.MyDialog");//在MyOcx中搜索ProgID = s 'MyOcx.MyDialog.1'
// Dispatch对象看成是对Activex控件的一个操作
Dispatch disp = com.getObject();
// 假设MsgBox是MyOcx.dll中的一个方法
Dispatch.call(disp, "MsgBox", "HelloWorld_Windows弹窗!");
ComThread.Release();// 结束进程
}
}
在执行程序之前,先执行下这个dll文件,MyOcx.dll,dll下载地址在: http://pan.baidu.com/s/1nuDn9up,执行方式是:
打开cmd命令窗口,输入:regsvr32 D:/MyOcx.dll(我的MyOcx.dll文件在D盘根目录下。),执行完成后,会弹出框提示已经注册完dll文件的信息。对于dll文件,你可以通过这个工具打开查看:eXeScope 下载地址:http://pan.baidu.com/s/1bpsPzWz
打开查看MyOcx.dll文件,其中关注下这个CLSID值,如下图:
CLSID的值为:8BE91377-DC16-45EF-8047-AD13354E755E
在windows的注册表中搜这个CLSID,其中打开注册表的方式是:在windows键+R,然后输入”regedit”,弹出注册表窗口,然后,Ctrl+F,输入CLSID的值:8BE91377-DC16-45EF-8047-AD13354E755E,回车,等待片刻后,会定位到你要搜索的内容。如下图:

红色圈起来的后两个最后都有ProgID,查看后,发现右边表格的数据列一个是MyOcx.MyDialog,一个是MyOcx.MyDialog.1,这两个值在上面的java程序中出现的位置可以相互替换,
接下来就可以执行java程序了,执行结果是:如图:

本文标题为:java 调用windows的COM组件举例(使用JACOB)
基础教程推荐
- Java List的get方法 2023-10-08
- 一文带你搞懂Java中方法重写与方法重载的区别 2023-07-14
- MyBatis-Plus自定义通用的方法实现 2023-07-15
- RocketMQ Push 消费模型示例详解 2023-05-24
- Java Web开发中过滤器和监听器使用详解 2023-06-30
- java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法 2023-09-01
- Java多线程学习笔记之三内存屏障与Java内存模型 2023-09-01
- 关于Java双大括号{{}}的具体使用 2023-03-15
- Java实现插入排序算法可视化的示例代码 2023-04-23
- Spring Cloud Config分布式配置中心使用介绍详解 2023-05-07
