Groovy: Groovy integrieren

Wie Sie Java-Klassen in Groovy integrieren, haben Sie in den vorangehenden Kapiteln schon in vielfältiger Weise gesehen, Es kommt in jedem Groovy-Programm sehr häufig vor, dass auf Klassen des Java Devlopment Kit zugegriffen werden muss, und in vielen Fällen kann es sinnvoll sein, andere konventionell mit Java programmierte Programmteile einzubinden. So könnten Sie etwa bereits vorhandene Klassen weiter verwenden wollen, oder Ihre Software-Architektur sieht eine systematische Trennung zwischen Java- und Groovy-Programmen vor. Schließlich kann es sich auch aus Performance-Gründen anbieten, einzelne kritische Routinen in Java zu implementieren, um die sehr aufwändige Auflösung von Feldern und Methoden zur Laufzeit einzusparen.

Das Vorgehen dabei unterscheidet sich nicht wesentlich von der Benutzung von Java-Klassen aus Java selbst. Anders sieht es aus, wenn Sie den umgekehrten Weg beschreiten wollen: Groovy-Klassen oder -Skripte in Java-Programme integrieren. Auch dafür kann es verschiedene Gründe geben: Zum Einen möchten Sie vielleicht in einigen Programm einfach die mächtigeren Möglichkeiten und die arbeitssparende Syntax der Sprache Groovy nutzen, um einen Teil Ihrer Anwendung mit geringerem Aufwand, aber ansonsten ganz normal in Form von kompilierten Klassen zu implementieren.

Sie könnten aber auch die dynamischen Möglichkeiten von Groovy-Programmen nutzen wollen, die erst zur Laufzeit kompiliert und eingebunden werden. Dies ist insbesondere dann sinnvoll, wenn Teile des Programms anpassbar sein sollen, ohne dass die ganze Anwendung neu gebaut und ausgeliefert werden muss, oder wenn sogar die Anwender in die Lage versetzt werden sollen, Formeln oder Skripte selbst zu schreiben und im Rahmen der Anwendung ausführen zu lassen.

In diesem Abschnitt zeigen wir zunächst, wie Groovy-Klassen statisch, also in kompilierter Form in Java-Programme eingebunden werden können. Dann stellen wir einige der vielfachen Möglichkeiten vor, Groovy-Skripte dynamisch, also erst zur Laufzeit übersetzt, in Java zu integrieren.

Tipp: In welcher Weise Sie auch immer Groovy mit Java kombinieren - beachten Sie, dass wir auch hier immer die Groovy-Bibliotheken im Klassenpfad haben müssen, sobald wir eine mit Groovy erstellte Klasse verwenden. Sie benötigen neben den eigentlichen Groovy-Bibliotheken (groovy-x.x.jar) auch die ANTLR- und ASM-Bibliotheken (antlr-x.x.x.jar und asm-x.x.jar), die Sie im lib-Order unterhalb des Groovy-Installationsverzeichnisses finden. Einfacher ist es, wenn Sie die umfassendere Groovy-Bibliothek (embeddable/groovy-all.x.x.jar) benutzen, in der alles Benötigte enthalten ist - wie wir es auch in den obigen Beispielen getan haben.[1]

Und denken Sie daran, dass Groovy eine Java-Version nicht unter 1.5 benötigt. Dies gilt natürlich auch, wenn Sie Groovy-Klassen oder Groovy-Skripte in eigene Java-Programme integrieren.

KapitelinhaltBearbeiten


  1. Dies gilt insbesondere, wenn Sie selbst die von Groovy verwendeten Libraries einsetzen, aber eine andere Version benötigen. Die groovy-all-Bibliothek bindet die ANTLR- und ASM-Klassen in einer Weise ein, dass keine Versionskonflikte entstehen können.