Вопрос

Можно ли вызвать COM API из Java (в частности, OTA API HP/Mercury Quality Center)?Если да, то какой лучший способ?

Подходит ли что-то вроде JACOB?

Фрагменты кода будут полезны для основ :-)

Это было полезно?

Решение

Джейкоб:да, http://sourceforge.net/projects/jacob-project/ — это активный проект, который вполне соответствует вашим целям.

вы можете увидеть несколько примеров: http://jacob-project.wiki.sourceforge.net/Event+Callbacks

но если вы хотите что-то более проверенное и готовы платить деньги, тогда выбирайте http://www.nevaobject.com/_docs/_java2com/java2com.htm.

Другие советы

Я также нашел это полезным: com4j

Вы можете использовать Джавин > http://jawinproject.sourceforge.net/

или попробуйте инструкцию http://docs.rinet.ru/ZhPP/ch20.htm

Арун Кай Арунки

возможно, тебе стоит взглянуть на http://qctools4j.sourceforge.net/это Java-библиотека, используемая qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page) для извлечения дефектов из QC.

к сожалению, COM-мост не работает для Linux, поскольку он загружает библиотеки Джейкоба

после сравнения всего вышеперечисленного ни один из них не оказался полностью удовлетворительным.

самое полное решение находится вhttps://github.com/java-native-access/jna

сейчас.

Он поддерживает,

  • получение интерфейса к работающему COM-объекту
  • запуск нового COM-объекта и возврат его интерфейса
  • вызов методов COM и возврат результатов
  • необязательная отдельная обработка COM-потоков
  • Обратные вызовы ComEvent
  • Запросы 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();

j-Interop — это мост Java-COM: j-Интероп.Он написан на чистом Java и распространяется под лицензией LGPL v3.Для вызова COM-объектов он использует проводной протокол DCOM, в отличие от подхода JNI, используемого JACOB.

Вы можете использовать J-Integra COM2JAVA инструмент.Инструмент com2java генерирует «прокси»-классы и интерфейсы Java, которые соответствуют компонентным классам и интерфейсам, содержащимся в библиотеке типов COM.Он эффективно генерирует Java API, который вы можете использовать для доступа к COM-компоненту из Java.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top