小觅向大家问好:
废话多多:
jacob在很长一段时间收到各位java编程人士的重用,许多和小寻一样热爱编程的朋友找到我讨论各种关于jacob的问题,在这些前来讨论技术的朋友当中,不少朋友是第一次接触,被jacob语法所迷惑,不知所措,为了让大家少走冤枉路,小寻特意写下这篇文章,由于本人技术浅薄,如有不足,还请批评指正。
如何下载:
jacob是来自danadler.com公司的开源产品,大家以往都是通过对该公司的凯发k8网页登录主页做访问,但是你现在打开会看到“internet explorer 无法显示该网页”如果我没记错我们以往使用的jacob_1.9.zip、jacob_1.7.zip都是从处下载的,但目前看来这个网址不可用了。做一下搜索,发现sourceforge.net 有一个叫jacob的项目,想是该公司搬家了吧!通过我们访问到该工程凯发k8网页登录主页,然后下载晕连版本也变了,再也找不到那些老版本了(大家如果有老版本的下载地址一定要留言通知小弟,感激不尽!!!)
源代码下载:
代码包下载:
api分析:(jacob-1.14.3\docs\api\index.htm)
jacob里的总共有两个包:
com.jacob.activex:jacob可以通过它调度(dispatch)activex 控件
com.jacob.com:jacob通过它调用系统dll
(activex是由微软公司推出的用于internet的技术,以前曾经被称为ole和ocx,activex web插件可以用于各种非html的工作,比如,对microsoftexcel 或 microsoftword 文件做操作、解析js,vb脚本、播放falsh、调用microsoft mediaplayer等.)
(更多关于activex和com:)
内部结构:
有一点可以确定的是在jacob内部,com.jacob.activex是建立在com.jacob.com之上的。
而com.jacob.com中有一个很基础的类com.jacob.com.jacobobject
其中比较常用的两个类com.jacob.com.dispatch和com.jacob.com.variant便是继承自它。(com.jacob.com.dispatch;里面提供了调度ms windows系统api,比如进程的管理。com.jacob.com.variant; 里面数据类型的转换的方法,variant类本身是jacob的最最基本的数据类,他可以被转换成任何的类,如: 使用todispatch();可以将variant转化成dispatch对象。)
com.jacob.com中还有其他的一些类不是建立在jacobobject之上的,如com.jacob.com.comthread(负责com线程管理。)
com.jacob.com所有的类,包括上面说到的jacobobject、comthread,都是通过com.jacob.com.libraryloader中的loadjacoblibrary()方法:
static
{
libraryloader.loadjacoblibrary();
}
调用jacob.dll内的方法,比如:dispatch.java就通过libraryloader和dispatch.h、dispatch.cpp建立联系。
从而建立起java到jacob.dll到jni的之间的联系。
(转发该文,请标明出处,谢谢支持!)
地震让大伙知道:居安思危,才是生存之道。