java 调用windows的COM组件举例(使用JACOB)
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 调用windows bat脚本
当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...
- Java调用windows命令
JAVA调用windows的cmd命令 用起来会让程序变得更加简洁明了,非常实用. 核心就是使用 Runtime类. cmd的xcopy就有很强大的文件夹,文件处理功能. 下面就以xcopy来说明,如 ...
- java调用windows的wmi获取设备性能数据
java调用windows的wmi获取监控数据(100%纯java调用windows的wmi获取监控数据) 转:http://my.oschina.net/noahxiao/blog/73163 纯j ...
- 实现通过COM组件方式实现java调用C#写的DLL文件的完整demo
最近因为工作需要,客户那边工程师使用的是JAVA语言开发的程序,我们这边平台中是用C#语言开发的,因为有些操作必须统一,所以我在网上查找解决方法,自己也实践过,在这里做个笔记吧,分享一下. 声明:下面 ...
- Java调用cmd压缩文件
今天在做一个java调用windows的压缩命令时遇到一奇怪问题代码如下: String cmd ="C:/Program Files (x86)/WinRAR/rar.exe a c:/t ...
- 如何在Processing中调用Windows应用程序
Processing调用了exe就意味着失去了跨平台.调用的过程是,先得到当前的runtime,然后调用runtime的exec()方法,在exec()传入的是字符串参数,这个参数很重要,该有空格的地 ...
- 通过COM组件方式实现java调用C#写的DLL文件
转自这里 最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资 ...
- 通过COM组件方式实现java调用C#写的DLL文件 转
最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资料很多,自 ...
- windows文本转语音 通过java 调用python 生成exe可执行文件一条龙
我已记不清 我失败过多少次 ,找过多少资料 ,但是功夫不负有心人 ,还是成功了. 所有资料和需要的语音模块的资料以放置在文章末尾, 有些是引用别人的博客的部分内容, 原文是在有道云笔记,所以没有图,请 ...
随机推荐
- linux_压缩解压命令(zip/tar)
一.zip 1.压缩 格式 $ zip (选项) (文件/目录) 选项 -r 参数表示递归打包包含子目录的全部内容. -q 参数表示为安静模式,即不向屏幕输出信息. -o 表示输出文件,需在其后紧跟打 ...
- tomcat启动失败问题总结
一.端口占用 linux下启动tomcat的时候,如果服务启动不成功,可以到查看logs文件夹下的catalina.out 日志文件,cat我的日志文件可得到如下的错误信息:(Caused by: ...
- 如何取消浏览器护眼色 Lodop打印图片有窗口颜色的边框
Lodop打印图片出现了边框,然而通常情况下是没有边框的,由于Lodop是基于本机的ie进行解析的,和IE的设置有关.用户的电脑和习惯千差万别,有人喜欢给浏览器加上护眼色,而这一个行为可能导致Lodo ...
- Python的数据类型和运算
一.Python数据类型 变量所指向的值是有自己独特的数据类型的,这些数据类型可能代表不同的数据,在Python中,主要有以下几种数据类型: 整形(int) 在计算机中,整数的位数其实是有范围的,并没 ...
- BZOJ3697采药人的路径——点分治
题目描述 采药人的药田是一个树状结构,每条路径上都种植着同种药材.采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳性的.采药人每天都要进行采药活动.他选择的路径 ...
- ZOJ2836-Number Puzzle-容斥原理
依次考虑一个数的倍数,两个数的倍数(lcm),三个数的倍数(lcm)... 会发现有这么一个规律,奇数个数时要加上情况数,偶数个数时要减去情况数. 一种只有10个数,用二进制枚举所有情况即可. #in ...
- ubuntu eclipse 无法打开
报错: The catalog could not be loaded... 这个问题,我上网查了很久.. 基本上网上可用的办法我都试过了.全是失败的 firefox+autoproxy,shadow ...
- Arif in Dhaka (First Love Part 2) UVA - 10294(Polya定理)
这题和POJ-1286一样 题意: 给出t种颜色的n颗珠子 (每种颜色的珠子个数无限制,但总数必须是n), 求能制作出项链和手镯的个数 注意手镯可以翻转和旋转 而 项练只能旋转 解析: 注意Poly ...
- 自学Linux Shell14.3-创建临时文件
点击返回 自学Linux命令行与Shell脚本之路 14.3-创建临时文件mktemp Linux系统保留了一个特殊的目录位置,以供临时文件使用.Linux使用/tmp目录处理不需要永久保存的文件. ...
- BZOJ4332 JSOI2012 分零食 【倍增 + NTT】
题目链接 权限题BZOJ4332 题解 容易想到\(dp\) 设\(g[i][j]\)表示前\(i\)人分到\(j\)颗糖的所有方案的乘积之和 设\(f(x) = Ox^2 + Sx + U\) \[ ...