È possibile chiamare un'API COM da Java?
-
02-07-2019 - |
Domanda
È possibile chiamare un'API COM da Java (in particolare l'API OTA HP / Mercury Quality Center)? In tal caso, qual è il modo migliore?
Qualcosa come JACOB è appropriato?
I frammenti di codice sarebbero utili per le basi :-)
Soluzione
jacob: sì, http://sourceforge.net/projects/jacob-project/ è un progetto attivo che si adatta abbastanza bene al tuo scopo.
puoi vedere più esempi: http: //jacob-project.wiki.sourceforge. net / evento + richiamate
ma se vuoi qualcosa che è più testato e sei disposto a pagare, allora vai a http://www.nevaobject.com/_docs/_java2com/java2com.htm .
Altri suggerimenti
Ho trovato utile anche questo: com4j
Puoi usare Jawin > http://jawinproject.sourceforge.net/
o prova le istruzioni http://docs.rinet.ru/ZhPP/ch20.htm
Arun K.Y arunky
forse dovresti dare un'occhiata a http://qctools4j.sourceforge.net/ è una libreria java utilizzata da qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page) per recuperare i difetti dal controllo qualità.
sfortunatamente il bridge COM non funziona per linux in quanto carica jacob dlls
dopo un confronto di quanto sopra, nessuno è stato del tutto soddisfacente.
è presente la soluzione più completa https://github.com/java-native-access/jna
ora.
Supporta,
- ottenere l'interfaccia con un oggetto COM in esecuzione
- avviare un nuovo oggetto COM e restituire la sua interfaccia
- chiamando i metodi COM e restituendo risultati
- gestione thread COM separata opzionale
- ComEventCallbacks
- RunninObjectTable query
- uso COM di basso livello
- util / astrazione proxy java di alto livello
per es.
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 è un bridge Java-COM: j-Interop . È scritto in puro Java e concesso in licenza con LGPL v3. Utilizza il protocollo wire DCOM per chiamare oggetti COM in contrapposizione all'approccio JNI utilizzato da JACOB.
Puoi usare lo strumento Ja-Integra COM2JAVA . Lo strumento com2java genera Java "proxy" classi e interfacce che corrispondono ai bicchieri e alle interfacce contenute in una libreria di tipi COM. Genera in modo efficace un'API Java che è possibile utilizzare per accedere a un componente COM da Java.