هل من الممكن استدعاء COM API من جافا؟
-
02-07-2019 - |
سؤال
هل من الممكن استدعاء COM API من Java (على وجه التحديد HP/Mercury Quality Center OTA 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
آرون كي أرانكي
ربما يجب عليك إلقاء نظرة على http://qctools4j.sourceforge.net/إنها مكتبة جافا تستخدمها qclylyn (http://sourceforge.net/apps/mediawiki/qcmylyn/index.php?title=Main_Page) لاسترداد العيوب من مراقبة الجودة.
لسوء الحظ، لا يعمل جسر COM مع نظام التشغيل Linux لأنه يقوم بتحميل ملفات jacob dlls
وبعد مقارنة كل ما سبق، لم يكن أي منها مرضيا تماما.
الحل الأكثر اكتمالا هو فيhttps://github.com/Java-native-access/jna
الآن.
انه يدعم،
- الحصول على واجهة لكائن COM قيد التشغيل
- بدء كائن COM جديد وإرجاع واجهته
- استدعاء أساليب COM وإرجاع النتائج
- معالجة اختيارية منفصلة لمؤشر ترابط COM
- comEventCallbacks
- استعلامات RunninObjectTable
- استخدام COM منخفض المستوى
- util / تجريد وكيل جافا عالي المستوى
على سبيل المثال
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: ي-التشغيل البيني.إنه مكتوب بلغة Java النقية ومرخص بموجب LGPL v3.يستخدم بروتوكول سلك DCOM لاستدعاء كائنات COM بدلاً من أسلوب JNI الذي يستخدمه JACOB.
يمكنك استخدام J-Integra COM2JAVA أداة.تقوم أداة com2java بإنشاء فئات وواجهات "وكيل" Java التي تتوافق مع الفئات المشتركة والواجهات الموجودة في مكتبة نوع COM.يقوم بإنشاء واجهة برمجة تطبيقات Java بشكل فعال والتي يمكنك استخدامها للوصول إلى مكون COM من Java.