是否可以从Java调用COM API?

时间:2008-09-26 06:26:10

标签: java api com hp-quality-center

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

是否适合JACOB?

代码片段对基础知识有帮助: - )

7 个答案:

答案 0 :(得分:9)

jacob:是的,http://sourceforge.net/projects/jacob-project/是一个活跃的项目,可以很好地满足您的目的。

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

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

答案 1 :(得分:4)

我也发现这很有用:com4j

答案 2 :(得分:2)

你可以使用Jawin> http://jawinproject.sourceforge.net/

或尝试使用说明http://docs.rinet.ru/ZhPP/ch20.htm

Arun K.Y arunky

答案 3 :(得分:2)

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

遗憾的是,COM桥不支持linux,因为它加载了jacob dll

答案 4 :(得分:2)

经过上述所有比较后,没有一个完全令人满意。

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

现在

支持,

  • 获取正在运行的COM对象的接口
  • 启动新的COM对象并返回其界面
  • 调用COM方法并返回结果
  • 可选的单独COM线程处理
  • ComEventCallbacks
  • RunninObjectTable查询
  • 低级COM使用
  • util / high level java proxy abstraction

E.g。

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();

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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