代码之家  ›  专栏  ›  技术社区  ›  Daniel Rikowski

如何选择javacom桥?

  •  23
  • Daniel Rikowski  · 技术社区  · 14 年前

    在谷歌的快速调查之后,我发现了几个库,但我不确定该用哪一个:

    我不知道如何比较这些图书馆,并作出明智的决定。似乎COM4J有点过时了,JACOB泄露了内存(据称),jacoZoom是商用的。每一个似乎都需要大量的样板代码来执行一个简单的方法调用。(考虑到COM的设计,这可能是不可避免的)

    5 回复  |  直到 9 年前
        1
  •  8
  •   Christopher    14 年前

    说到这里:活动似乎是J-Interop的优势。我们也尝试过这个项目,它似乎工作得相当不错,甚至更好的日志消息。我想我们可以选择J-Interop来进行新项目。

        2
  •  5
  •   Archie    9 年前

    作为一名精通Java/Linux但对Windows一无所知的开发人员,以下是我的经验(2015年8月)。。。

    执行摘要:

    1. 与…同行 com4j
    2. 您可能需要构建最新的(未发布的)代码来获得一些重要的最新修复。

    长话短说:

    J-Interop 似乎符合条件。

    然而,当我试图让j-interop工作时,所有的windowsdcom权限和注册表垃圾使它成为一个完全的PITA。对于不同版本的Windows来说是不同的,必须以管理员的身份进行必要的更改,等等。我不懂这些Windows垃圾,这让我想吐。

    然后我尝试了com4j,它就像一个冠军。这个项目设计得很好。它自动从您正在使用的DLL生成Java接口。COM调用约定的详细信息是使用接口方法上的Java注释声明的,允许您在必要时对其进行调整(在我的例子中不需要调整)。

    唯一需要注意的是,您可能需要一些最新的修复,这些修复在2015年8月已合并到项目中,但未包含在最新版本(2014年3月发布)中。

    所以你可能需要自己做一个定制的构建,包括在visualstudio中构建DLL,等等。即使是一个讨厌Windows的/无知的人,我也能做到这一点。

        3
  •  4
  •   TmTron    12 年前

    COM4J似乎仍然很活跃-它已经被移动到Github并有了一个新的主页: http://com4j.kohsuke.org/tutorial.html

        4
  •  3
  •   user2045190    12 年前

    http://j-integra.intrinsyc.com/ 是你最好的选择。它隐藏了必须了解一种不熟悉的编程语言的复杂性。它不依赖于JNI,所以你不需要了解JNI。J-Integra也得到了积极的维护和支持,Intrinsyc为那些希望在纯64位环境中运行的人提供了纯64位版本。

    像惠普、IBM、SAP和甲骨文这样的公司都使用它,所以您知道它将是快速、稳定和良好支持的。

        5
  •  1
  •   rogerdpack    11 年前

    出现 bridj 也可以执行一些COM互操作: https://code.google.com/p/bridj/wiki/COM#Example