Jacob了,我試成功的一個,官網:http://danadler.com/jacob/。
思路就是:c#註冊一下 java調用!
步驟如下:
1,在官網上把需要的包下下來,其文件目錄如下:
2.在開發環境中引入jacob.jar (解壓放置於jdk_home/jre/lib/ext目錄下);
拷貝jacob-1.19-x86.dll文件到 C:\Windows\System32目錄,如果是Web應用的話還需要拷貝到jdk1. 8\bin目錄(jdk安裝目錄下的bin目錄)
一般我兩個這玩意都拷進去 省事
3.生成簽名,一般有支持註冊dll命令的 用vs自帶就行,cmd不支持,敲入如下命令生成強命名
key:sn -k MyKeyFire.snk
其中MyKeyFire是名字,可以自己隨便取。注意生成顯示的路徑,拷貝出來
4.c#寫類庫行代碼
右擊項目名,選擇屬性:
1)應用程序–>程序集信息,勾選使程序集COM可見
2)生成–>勾選爲COM互操作註冊
3)簽名–>勾選爲程序集簽名,選擇剛剛生成的強簽名文件
編譯程序,在debug目錄下會生成 TestCom.dll 和TestCom.tlb
5.回到Visual 中自帶命令工具,類似cmd的,進入Debug目錄,運行註冊命令:
regasm TestCom.DLL /tlb:TestCom.tlb
gacutil -i TestCom.DLL (執行這個命令需要TestCom.DLL 具有強名稱)
(注意 存在cmd命令中 進入不了bin文件目錄,造成無法定位 更無法註冊)
說明有問題,重新做個新項目 一般是能cd的
6.Java程序
新建一個java項目,將jacob.jar包add build path,
main程序如下:
記住 也有報錯 類似這樣的
一般參數沒寫錯的話 是因爲vs編譯 CPU不能選擇任何cpu 我選了x86 重新編譯
注意事項:
1)、dotnetCom = new ActiveXComponent("TestCom.HelloWorld.");注意正確映射GUID,否則報錯找不到映射類,解決方式:在註冊表中查看相應類名
例如:運行->regedit-> HKEY_CLASSES_ROOT-> TestCom.HelloWorld