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可执行文件一条龙
我已记不清 我失败过多少次 ,找过多少资料 ,但是功夫不负有心人 ,还是成功了. 所有资料和需要的语音模块的资料以放置在文章末尾, 有些是引用别人的博客的部分内容, 原文是在有道云笔记,所以没有图,请 ...
随机推荐
- intval()和int()
int intval ( mixed $var [, int $base ] ) 通过使用特定的进制转换(默认是十进制),参数base表示进制,只有当var是字符串时,base才会有意义,表示按 ...
- Node fs模块同步读取写入追加
JS文件中const fs = require("fs");console.log("开始进入文件读取.."); //同步的写入var data = fs.re ...
- mxnet,theano与torch的简单比较
这篇文章我想来比较一下Theano和mxnet,Torch(Torch基本没用过,所以只能说一些直观的感觉).我主要从以下几个方面来计较它们: 1.学习框架的成本,接口设计等易用性方面. 三个框架的学 ...
- MidoNet 安装(Kilo RDO)(最老版)
一.初始化(Kilo RDO)版(最老版) 环境介绍 系统 CentOS 7.3 主机ip 10.211.55.5 主机名 midonet 1.配置yum源 ###OpenStack源 yum ins ...
- 《ERP系统》客户信用及风控代码
1.风控核心代码: <?php namespace core\models; class SalesCustomersFacade extends \common\models\Base{ /* ...
- rabbitmq使用报错总结
最近公司重构服务器架构,需要用到rabbitmq,在公司搞了一个下午还是连接不上,后来细看了英文说明,测试连接成功,得出如下报错几点. 我用的安装包:otp_win64_21.3.exe(erlang ...
- python之使用smtplib模块发送邮件
# 使用smtplib模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Heade ...
- Fiddler4入门——手机抓包
一.下载工具包 百度搜索”fiddler 下载“ ,安装最新版本 下载的软件安装包为“fiddler_4.6.20171.26113_setup.exe”格式,双击安装.安装成功,在“开始”-“所有程 ...
- HDU-3746-KMP理解失配
这个有点意思,要理解失配数组 题意是要计算出需要构造成循环节相连的最小个数 利用失配构造函数求出单个循环节,然后计算出需要的加上的珠子个数 #include <cstdio> #inclu ...
- 19 Zabbix web监控实例
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 9 Zabbix web监控实例 通过前面的介绍你已经了解Web scenario的配置,下面我们 ...