I used both Jacob and Com4j during integration with a simple COM object. I ended up with Com4j mainly because Jacob spilled too much memory. Compared to Jacob, I think Com4j was more direct when it was set up. If I remember correctly, Jacob required a lot more configuration and input before making the actual COM call. In Com4j, you just use the provided factory.
Com4j is working fine for us, but we hit several times on the road. Firstly, the created interfaces were not formed correctly, and we had to manually configure them. The main problems that I remember were that we could not properly handle the @ReturnValue annotation. In addition, we need to manually adjust the @VTID enumeration.
Another important thing that we encountered was that we could not use the Holder (out params) class for short s. We finished creating a Delphi converter, converted from Integer to Short, instead of making any changes to Com4j.
Finally, I remember that I was a little worried about the status of the project when I integrated. There seems to be no regular updates (two years since the last service release).
Samuel sjรถberg
source share