2008-09-26 12 views
9

Czy można wywołać interfejs API COM z poziomu języka Java (w szczególności interfejs API OTA centrum HP/Mercury)? Jeśli tak, jaki jest najlepszy sposób?Czy można wywołać API COM z Java?

Czy jest coś takiego jak JACOB?

fragmenty kodu byłoby pomocne dla podstaw :-)

Odpowiedz

1

j-Interop most Java-COM: j-Interop. Jest napisany w czystej wersji Java i jest licencjonowany na licencji LGPL v3. Używa protokołu drutu DCOM do wywoływania obiektów COM w przeciwieństwie do metody JNI używanej przez JACOB.

2

może należy spojrzeć na http://qctools4j.sourceforge.net/ jest to biblioteka Java używany przez qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page), aby odzyskać od wad QC.

niestety most COM nie działa na Linuksie, jak ładuje Jacob bibliotek DLL

1

Można użyć J-Integra COM2JAVA narzędzia. Narzędzie com2java generuje klasę "proxy" Java i interfejsy, które odpowiadają kokilom i interfejsom zawartym w bibliotece typów COM. Skutecznie generuje interfejs API języka Java, za pomocą którego można uzyskać dostęp do komponentu COM z poziomu Java.

2

po porównaniu wszystkich powyższych, żaden nie był całkowicie zadowalający.

najbardziej kompletne rozwiązanie w https://github.com/java-native-access/jna

teraz.

Obsługuje,

  • coraz interfejs do uruchomionego obiektu COM
  • rozpoczęciem nowego obiektu COM i powrót jego interfejs
  • wywoływanie metod COM i zwracania wyników
  • przeładunkowe opcjonalnie oddzielny wątek COM
  • ComEventCallbacks
  • Zapytania RunninObjectTable
  • lowlevel zastosowanie COM
  • util/wysoki poziom abstrakcji Java Pełnomocnik

Np

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(); 
Powiązane problemy