Als Entwickler gewürzt in Java/Linux aber unwissend in Windows, hier war meine Erfahrung (August 2015) ...
Zusammenfassung:
- Gehen Sie mit com4j ... mit dem Vorbehalt, dass:
- Sie müssen möglicherweise die neuesten (unreleased) Code bauen einige wichtige letzten f zu erhalten ixes.
Längere Geschichte:
Zunächst wird die Neigung zur Code Beteiligung JNI aus unerklärlichen Gründen abstürzen ließ mich für eine nicht-JNI-Lösung suchen. J-Interop schien die Rechnung zu passen.
Wie auch immer ich versuchte, j-interop zur Arbeit zu bringen, machte alle Windows DCOM-Berechtigungen und Registry-Mist eine Gesamt-PITA. Für verschiedene Versionen von Windows ist es anders, die erforderlichen Änderungen müssen als Administrator usw. vorgenommen werden. Ich verstehe diesen Windows-Mist nicht und es macht mich sowieso kotzen.
Ich versuchte dann com4j und es funktionierte wie ein Champion. Dieses Projekt ist sehr schön gestaltet. Es generiert automatisch Java-Schnittstellen aus den DLLs, die Sie verwenden. Die Details der COM-Aufrufkonvention werden mithilfe von Java-Annotationen für die Schnittstellenmethoden deklariert, sodass Sie diese bei Bedarf anpassen können (in meinem Fall waren keine Optimierungen erforderlich).
Es gibt mehrere Entwickler auf Github, die das Projekt gespalten und Korrekturen zurückgeschickt haben, was ein gesundes Zeichen ist.
Der einzige Vorbehalt ist, dass Sie möglicherweise einige der letzten Korrekturen benötigen, die ab August 2015 in das Projekt integriert sind, aber nicht in der neuesten Version enthalten sind (ab März 2014).
So müssen Sie möglicherweise eine benutzerdefinierte Build selbst, die DLLs in Visual Studio, etc. zu bauen. Auch als Windows-Hasser/ignorant, konnte ich dies tun.
JACOB unterstützt nur Dispatch-Schnittstelle; Es kann keine Vtable-Bindung ausführen. –