小覓向大家問好:
廢話多多:
JACOB在很長一段時間收到各位JAVA編程人士的重用,許多和小尋一樣熱愛編程的朋友找到我討論各種關于JACOB的問題,在這些前來討論技術的朋友當中,不少朋友是第一次接觸,被JACOB語法所迷惑,不知所措,為了讓大家少走冤枉路,小尋特意寫下這篇文章,由于本人技術淺薄,如有不足,還請批評指正。
如何下載:
JACOB是來自danadler.com公司的開源產品,大家以往都是通過http://danadler.com對該公司的主頁做訪問,但是你現在打開會看到“Internet Explorer 無法顯示該網頁” 如果我沒記錯我們以往使用的jacob_1.9.zip、jacob_1.7.zip都是從http://danadler.com/jacob 處下載的,但目前看來這個網址不可用了。做一下搜索,發現sourceforge.net 有一個叫jacob的項目,想是該公司搬家了吧!通過http://sourceforge.net/projects/jacob-project/ 我們訪問到該工程主頁,然后下載jacob-project 1.14.3 暈連版本也變了,再也找不到那些老版本了(大家如果有老版本的下載地址一定要留言通知小弟,感激不盡!!!)
源代碼下載:jacob-1.14.3_src.zip
代碼包下載:jacob-1.14.3.zip
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:http://www.itcups.com/Articals/Artical_10121.html)
內部結構:

有一點可以確定的是在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的之間的聯系。
(轉發該文,請標明出處http://www.tkk7.com/lusm,謝謝支持!)
地震讓大伙知道:居安思危,才是生存之道。