9

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

像 JACOB 这样的东西合适吗?

代码片段将对基础有所帮助:-)

4

5 回答 5

9

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

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

但是,如果您想要经过更多测试并且愿意付钱的东西,那就去http://www.nevaobject.com/_docs/_java2com/java2com.htm

于 2008-09-26T06:41:28.247 回答
3

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

最完整的解决方案在 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();
于 2017-04-27T12:58:02.253 回答
2

也许你应该看看http://qctools4j.sourceforge.net/ 它是 qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page) 用来检索缺陷的 java 库来自质检。

不幸的是,COM 桥不适用于 linux,因为它加载了 jacob dll

于 2010-10-11T16:30:57.280 回答
1

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

于 2010-03-10T09:37:28.917 回答
1

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

于 2010-12-17T08:25:04.500 回答