【问题标题】:Is it possible to call a COM API from Java? [closed]是否可以从 Java 调用 COM API? [关闭]
【发布时间】:2010-09-13 08:59:11
【问题描述】:

是否可以从 Java 调用 COM API(特别是 HP/Mercury Quality Center OTA API)?如果是这样,最好的方法是什么?

像 JACOB 这样的东西合适吗?

代码片段将有助于基础知识:-)

【问题讨论】:

  • 我也发现这很有用:com4j

标签: java api com hp-quality-center


【解决方案1】:

jacob :是的,http://sourceforge.net/projects/jacob-project/ 是一个非常适合您的目的的活跃项目。

您可以看到多个示例:http://jacob-project.wiki.sourceforge.net/Event+Callbacks

但如果您想要经过更多测试并愿意花钱的东西,请选择http://www.nevaobject.com/_docs/_java2com/java2com.htm

【讨论】:

    【解决方案2】:

    经过以上所有的比较,没有一个是完全令人满意的。

    最完整的解决方案是 https://github.com/java-native-access/jna

    现在。

    支持,

    • 获取正在运行的 COM 对象的接口
    • 启动一个新的 COM 对象并返回它的接口
    • 调用 COM 方法并返回结果
    • 可选的独立 COM 线程处理
    • ComEventCallbacks
    • RunninObjectTable 查询
    • 低级 COM 使用
    • util / 高级 java 代理抽象

    例如

    MsWordApp comObj = this.factory.createObject(MsWordApp.class);
    
    Documents documents = comObj.getDocuments();
    _Document myDocument = documents.Add();
    
    String path = new File(".").getAbsolutePath();
    myDocument.SaveAs(path + "\\abcdefg", WdSaveFormat.wdFormatPDF);
    comObj.Quit();
    

    【讨论】:

      【解决方案3】:

      也许你应该看看http://qctools4j.sourceforge.net/ 它是 qclyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page) 用于从 QC 中检索缺陷的 java 库。

      不幸的是,COM 桥在加载 jacob dll 时不适用于 linux

      【讨论】:

        【解决方案4】:

        j-Interop 是一个 Java-COM 桥:j-Interop。它是用纯 Java 编写的,并在 LGPL v3 下获得许可。它使用 DCOM 有线协议来调用 COM 对象,而不是 JACOB 使用的 JNI 方法。

        【讨论】:

          【解决方案5】:

          您可以使用 J-Integra COM2JAVA 工具。 com2java 工具生成 Java“代理”类和接口,它们对应于 COM 类型库中包含的 coclasses 和接口。它有效地生成了一个 Java API,您可以使用它来从 Java 访问 COM 组件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-03-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多