2009-03-03 4 views

Antwort

19

Sie könnten diese beiden versuchen, ich habe Erfolg mit beiden gesehen.

http://jawinproject.sourceforge.net

Das Java/Win32 Integrationsprojekt (Jawin) ist eine freie, Open-Source- Architektur für das Zusammenspiel zwischen Java und Komponenten ausgesetzt durch Microsoft Component Object Model (COM) oder durch Win32 Dynamisch Link-Bibliotheken (DLLs).

https://github.com/twall/jna/

JNA bietet Java-Programme einfachen Zugang auf native Shared Libraries (DLLs auf Windows) ohne alles andere als Java Code-Nr Schreiben JNI oder nativen Code ist erforderlich. Diese Funktionalität ist vergleichbar mit Windows Platform/Invoke und Pythons Ctypes. Der Zugriff ist zur Laufzeit ohne Codegenerierung dynamisch .

JNA können Sie direkt in native Funktionen mit natürlichen Java Methodenaufruf aufrufen. Der Java-Aufruf sieht genauso aus wie in systemeigenem Code. Die meisten Anrufe erfordern keine spezielle Behandlung oder Konfiguration; Kein BoilerPlate oder generierter Code ist erforderlich.

Lesen Sie auch hier oben:

http://en.wikipedia.org/wiki/Java_Native_Interface

Das Java Native Interface (JNI) ist ein Programmierung Framework, das Java ermöglicht Code in einer Java Virtual Machine ausgeführt wird (JVM) zu Anruf und angerufen werden 1 von native Anwendungen (Programme spezifische zu einem Hardware- und Betriebssystem Plattform) und Bibliotheken wr iten in andere Sprachen, wie C, C++ und Assembly.

http://en.wikipedia.org/wiki/Java_Native_Access

Java Native Access bietet Java Programme einfachen Zugriff auf native shared Bibliotheken ohne das Java Native Interface zu verwenden. JNA Design zielt darauf ab, natürlichen Zugang mit einem Minimum an Aufwand bieten. No Vorläufiger oder generierter Klebstoffcode ist erforderlich.

5

JNA ist ziemlich nett. Ich bin nur ein Anfänger und ich fand es sehr einfach. Funktioniert nicht nur für die Win32-API, sondern für fast jede andere DLL.

2

Jacob auf der COM-Seite ist ziemlich gut (aber es ist echten COM - wie Sie in C++ schreiben - wenn Sie vertraut mit echten COM-Programmierung sind, dann ist Jacob ein Kinderspiel zu verwenden)

+0

Nicht nitpick versucht, aber COM setzt Dienste über ein ** C ** Schnittstelle. – IInspectable

1

Eine weitere Option ist WinRun4J. Es hat eine native Binding-Ebene, die mit pinvoke.net kompatibel ist (das native Bindungsformat, das in dot net verwendet wird). Weitere Informationen finden Sie unter examples. Es ist ein wenig zu früh, also YMMV.

(vollständige Offenlegung: ich arbeite an dem Projekt).

Noch eine andere Option ist JFFI - dies wird in jruby und jython verwendet, um mit nativen Bibliotheken zu interagieren.

Verwandte Themen