¿Es posible llamar a una API COM desde Java?
-
02-07-2019 - |
Pregunta
¿Es posible llamar a una API COM desde Java (específicamente la API OTA de HP / Mercury Quality Center)? Si es así, ¿cuál es la mejor manera?
¿Es algo como JACOB apropiado?
Los fragmentos de código serían útiles para lo básico :-)
Solución
jacob: sí, http://sourceforge.net/projects/jacob-project/ es un proyecto activo que se ajustará a su propósito bastante bien.
puede ver varios ejemplos: http: //jacob-project.wiki.sourceforge. net / Event + Callbacks
pero si desea algo que esté más probado y que esté dispuesto a pagar dinero, entonces vaya a http://www.nevaobject.com/_docs/_java2com/java2com.htm .
Otros consejos
También me parece útil: com4j
Puedes usar Jawin > http://jawinproject.sourceforge.net/
o pruebe las instrucciones http://docs.rinet.ru/ZhPP/ch20.htm
Arun K.Y arunky
tal vez debería echar un vistazo a http://qctools4j.sourceforge.net/ es una biblioteca java utilizada por qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page) para recuperar defectos de QC.
Desafortunadamente, el puente COM no funciona para Linux ya que carga archivos DLL de jacob
después de una comparación de todo lo anterior, ninguno fue totalmente satisfactorio.
la solución más completa está en https://github.com/java-native-access/jna
ahora.
Es compatible,
- obtener la interfaz para un objeto COM en ejecución
- iniciar un nuevo objeto COM y devolver su interfaz
- llamar a métodos COM y devolver resultados
- manejo opcional de subprocesos COM
- ComEventCallbacks
- consultas de RunninObjectTable
- uso de COM de bajo nivel
- abstracción de proxy Java / util de alto nivel
Por ejemplo,
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();
j-Interop es un puente Java-COM: j-Interop . Está escrito en Java puro y bajo la licencia LGPL v3. Utiliza el protocolo de conexión DCOM para llamar a objetos COM en lugar del enfoque JNI utilizado por JACOB.
Puede usar J-Integra COM2JAVA herramienta . La herramienta com2java genera Java " proxy " clases e interfaces que corresponden a las coclas e interfaces contenidas en una biblioteca de tipos COM. Genera efectivamente una API de Java que puede usar para acceder a un componente COM desde Java.