C-Code in Java einbinden

Meine Frage ist folgende: Kann ich an Java C+ Funktionen anhängen, oder quasi
einbinden, um zum Bsp. ne GUI in Java zu schreiben und die performanten Sachen in
C zu implementieren. Was ich nicht will ist irgendwelche Executables aus Java starten. Ich möchte quasi mehr ne Art dll’s in Java einhängen können, wo dann Werte und Daten einer C Funktionen auf ne Java-Klasse abgebildet werden können??? Geht sowas überhaupt ???

Mit freundlichem Gruß

[email protected]

Meine Frage ist folgende: Kann ich an
Java C+ Funktionen anhängen, oder quasi
einbinden

AFAIK kannst du COM-Klassen in Java einbinden, das ist aber Microsoft/VJ++ spezifisch. „Herkömmliche“ DLLs gehen auf diesem Wege auch nicht.

Alternativ könntest du das plattformübergreifende CORBA verwenden, aber bringt nicht viel, weil du mit dich mit deinen C+±Komponenten wahrscheinlich sowieso an Win32 bindest.

Ist aber die Frage warum du dir COM/CORBA überhaupt antun solltest bzw. warum du nicht gleich alles in C++ machen kannst?

Grüße, Robert

AFAIK kannst du COM-Klassen in Java
einbinden, das ist aber Microsoft/VJ++
spezifisch. „Herkömmliche“ DLLs gehen auf
diesem Wege auch nicht.

Alternativ könntest du das
plattformübergreifende CORBA verwenden,
aber bringt nicht viel, weil du mit dich
mit deinen C+±Komponenten wahrscheinlich
sowieso an Win32 bindest.

Ist aber die Frage warum du dir COM/CORBA
überhaupt antun solltest bzw. warum du
nicht gleich alles in C++ machen kannst?

Ei die weil deswegen, weil die GUI plattformunabhängig sein muß, um diese für mehere Projekte einzusetzen und sowohl auf Solaris als auch NT laufen zu lassen. Der eigentliche Code ist aber in C, aus Performancengründen, weil Java zu langsam ist. Wenn ich also die GUI auch in C machen, ist sie nicht so einfach unter Solaris übersetzbar, wenn ich die MFC-Bibliotheken nutzen will. ALternativ stände mir noch die STL zur Verfügung. Aber irgendwie gefällt mir das alles eben nicht. Deswegen die Java-Geschichte.

Ei die weil deswegen, weil die GUI
plattformunabhängig sein muß

Aso, hab mich irgendwie verlesen, irgendwie habe ich gelesen, daß du das GUI in C++ machen wolltest. :o)

Dann würde ich mir das CORBA mal reinziehen, was man so hört ist das aber nicht ohne … :smile: … schau mal auf www.omg.com.

Grüße, Robert

Meine Frage ist folgende: Kann ich an
Java C+ Funktionen anhängen, oder quasi
einbinden, um zum Bsp. ne GUI in Java zu
schreiben und die performanten Sachen in
C zu implementieren. Was ich nicht will
ist irgendwelche Executables aus Java
starten. Ich möchte quasi mehr ne Art
dll’s in Java einhängen können, wo dann
Werte und Daten einer C Funktionen auf ne
Java-Klasse abgebildet werden können???
Geht sowas überhaupt ???

Ja, sowas geht.

D.h. es ist möglich aus Java aus Dll`s aufzurufen. Dabei können sowohl Daten übergeben als auch empfangen werden. Dies ist aber nicht ganz einfach.

Es sind 5 Schritte dafür nötig.

  1. Klasse „A“ mit native-Methode in Java deklarieren mit dem Schlüsselwort „native“
  2. Kompilieren der Klasse A zu A.class
    mit javac.
  3. Erstellen eines C-Header-Files mit „A.h“ mit Hilfe von javah
  4. *.dll erstellen (z.b. hello.dll)
  5. Aufruf der C-Funktion in Java.

Solltest Du nicht zurechtkommen, sende mir einfach eine E-Mail und ich sehe, was ich für Dich machen kann.

Gruß

Jörg