是否有可能从Java调用一个COM API?(Is it possible to call a CO

2019-06-21 21:35发布

是否有可能从Java调用一个COM API(特别是HP /美科利质量中心OTA API)? 如果是这样,什么是最好的方法是什么?

是像JACOB合适?

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

Answer 1:

雅各布:是的, http://sourceforge.net/projects/jacob-project/是一个活跃的项目,将适合你的目的非常好。

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

但如果你想要的东西,更多的是测试并愿意支付的钱,然后去http://www.nevaobject.com/_docs/_java2com/java2com.htm 。



Answer 2:

我还发现这是有用的: com4j



Answer 3:

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

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

阿伦KY arunky



Answer 4:

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

不幸的是,因为它加载的DLL侨光的COM桥不为Linux工作



Answer 5:

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

最完整的解决方案是在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();


Answer 6:

J-互操作是Java-COM桥: J-互操作 。 它是用纯Java编写和LGPL v3的授权。 它使用DCOM有线协议来调用COM对象,而不是由Jacob使用JNI方法。



Answer 7:

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



文章来源: Is it possible to call a COM API from Java?