Java에서 COM API를 호출 할 수 있습니까?
-
02-07-2019 - |
문제
Java (특히 HP/Mercury Quality Center OTA API)에서 COM API를 호출 할 수 있습니까? 그렇다면 가장 좋은 방법은 무엇입니까?
야곱과 같은 것이 적절합니까?
코드 조각은 기본에 도움이 될 것입니다 :-)
해결책
야곱 : 네, http://sourceforge.net/projects/jacob-project/ 당신의 목적에 잘 어울리는 활발한 프로젝트입니다.
여러 가지 예를 볼 수 있습니다. http://jacob-project.wiki.sourceforge.net/event+callbacks
그러나 더 많은 테스트를 받고 돈을 지불하려는 것을 원한다면 http://www.nevaobject.com/_docs/_java2com/java2com.htm.
다른 팁
또한 이것이 유용하다는 것을 알았습니다. com4j
Jawin>을 사용할 수 있습니다 http://jawinproject.sourceforge.net/
또는 지침을 시도하십시오 http://docs.rinet.ru/zhpp/ch20.htm
Arun Ky Arunky
어쩌면 당신은 살펴 봐야 할 것입니다 http://qctools4j.sourceforge.net/Qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=main_page)이 사용하는 Java 라이브러리입니다.
불행히도 COM 브리지는 Jacob DLLS를로드하므로 Linux에서 작동하지 않습니다.
위의 모든 것을 비교 한 후에는 완전히 만족 스러웠습니다.
가장 완전한 솔루션이 있습니다https://github.com/java-native-access/jna
지금.
지원,
- 실행중인 COM 객체에 인터페이스를 가져옵니다
- 새 COM 객체를 시작하고 인터페이스를 반환합니다
- COM 방법을 호출하고 결과를 반환합니다
- 선택적 별도의 COM 스레드 처리
- ComeventCallbacks
- runinoBjectTable 쿼리
- 낮은 수준의 COM 사용
- Util / High Level 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 Bridge입니다. J- 인터 로프. 순수한 Java로 작성되었으며 LGPL V3에 따라 라이센스가 부여되었습니다. Jacob이 사용하는 JNI 접근법과 달리 DCOM 와이어 프로토콜을 사용하여 COM 객체를 호출합니다.
J- 인트라를 사용할 수 있습니다 com2java 도구. COM2Java 도구는 COM 유형 라이브러리에 포함 된 Coclasses 및 인터페이스에 해당하는 Java "Proxy"클래스 및 인터페이스를 생성합니다. Java의 COM 구성 요소에 액세스하는 데 사용할 수있는 Java API를 효과적으로 생성합니다.