2010-08-23 43 views
22

我必須創建一個自動化Outlook和Word的應用程序,並且我想爲該任務使用Java。 (只允許使用替代辦法是VB6,所以......)如何選擇Java-COM橋?

快速谷歌的調查,我發現幾個庫後,但我不知道該使用哪一個:

我不知道如何比較這些庫並作出明智的決定。看起來COM4J有點過時了,JACOB泄漏了內存(據稱),jacoZoom是商業版本。每個人似乎都需要大量的樣板代碼來執行簡單的方法調用。 (考慮到COM的設計,這可能是不可避免的)

除此之外,我不知道如何選擇其中之一。哪一個是最好的?

+0

JACOB只支持dispatch-interface;它不能做vtable綁定。 – 2014-05-19 05:46:47

回答

8

我們在生產環境中使用雅各布,它工作得很好。儘管如此,這些項目似乎並不是非常活躍。

說起來:活動似乎是J-Interop的優勢。我們也嘗試了這個項目,它看起來效果很好,有更好的日誌記錄消息。我想我們可能會選擇J-Interop用於新項目。

COM4J似乎已經過時了,你是對的。

+1

我們最終還是使用了Jacob,並且沒有遇到Outlook自動化的問題。 – 2012-06-19 06:58:12

+0

只留下這裏留給後人:我結束了使用JACOB,它確實泄漏內存沒有其他東西。我用它來測量工具的自動化(關閉和重新打開連接不是一個選項),它會在幾個小時內使JVM崩潰。 – Siebe 2018-01-09 07:29:46

3

J-的Integra通過Intrinsyc公司軟件http://j-integra.intrinsyc.com/是您最佳的選擇。它隱藏了必須瞭解不熟悉的編程語言的複雜性。它不依賴於JNI,所以你不需要知道JNI。 J-Integra也得到了積極的維護和支持,Intrinsyc爲那些希望在純64位環境中運行的用戶提供純粹的64位版本。

Intrinsyc提供免費試用版,所以您可以在進行任何購買之前測試它並查看它是否有效。

像惠普,IBM,SAP和甲骨文這樣的公司使用它,所以你知道它將變得快速,穩定和良好的支持。

5

與Windows中的Java/Linux,但無知老到的開發人員,這裏是我的經驗(2015年8月)...

內容提要:

  1. 圍棋與com4j ...需要提醒的是:
  2. 您可能需要建立最新的(未發行)的代碼來獲得一些重要的近期˚F ixes。

更長的故事:

首先,對於涉及的JNI莫名其妙地死機代碼的傾向,讓我找一個非JNI的解決方案。 J-Interop似乎符合法案。

但是,當我嘗試讓j-interop工作時,所有的Windows DCOM權限和註冊表垃圾使其成爲總PITA。這對於不同版本的Windows是不同的,必須以管理員身份進行必要的更改等等。我不瞭解任何這種Windows廢話,它使我想嘔吐。

然後我嘗試了com4j,它像冠軍一樣工作。這個項目設計得非常好。它會從您正在使用的DLL中自動生成Java接口。 COM調用約定的詳細信息是在接口方法上使用Java註釋聲明的,允許你在必要時調整它們(在我的情況下不需要調整)。

github上有幾個開發人員已經分叉項目並提供了修復,這是一個健康的標誌。

唯一需要注意的是,您可能需要一些最近修復,它們於2015年8月合併到項目中,但未包含在最新版本(即2014年3月)中。

所以你可能需要自己做一個自定義的構建,包括在Visual Studio中構建DLL,甚至作爲一個Windows hater/ignorant,我能夠做到這一點。