Ich habe ein Beispiel für das Ausführen von Groovy-Skripten auf Systemen gefunden, auf denen Groovy nicht mit der Groovy-All-JAR-Datei installiert wurde. Ich habe Folgendes versucht:
%Vor%Das Problem ist, dass mein Skript von jars im lib-Verzeichnis und zwei anderen Groovy-Skriptdateien in src / com / examples abhängt. Wenn ich das ausführe, beschwert es sich über die Importanweisungen für alle von ihnen. Ich kann es auf einem System ausführen, auf dem Groovy installiert ist, indem Sie Folgendes verwenden:
%Vor%Wie starte ich Groovy-Skripte auf diese Weise, benutze das groovy-all jar, und gebe ihm einen Klassenpfad?
Sie können sowohl -jar
als auch -cp
in einem java
-Befehl nicht kombinieren, daher müssen Sie die Hauptklasse explizit benennen. Wenn Sie das Manifest der groovy-all
JAR betrachten, lautet der Hauptklassenname groovy.ui.GroovyMain
, Sie brauchen also
(Wenn groovy-all nicht bereits von lib/*
abgedeckt wurde, müsstest du das auch zu -cp
hinzufügen).
Eine Möglichkeit besteht darin, die Groovy-Dateien in "* .class" -Dateien zu kompilieren. Fügen Sie dann das Jar aus dem Verzeichnis $ GROOVY_HOME / embeddable ein und legen Sie es in den Klassenpfad.
Hier ist ein minimalistisches Beispiel (die erste Zeile ist eine einfache Unix-Kopie; benutze, was für dich funktioniert):
%Vor%Für eine typische Distribution würden Sie Ant / Maven / Gradle verwenden, um Ihre eigene JAR-Datei mit den kompilierten Groovy-Dateien (d. h. Klassendateien) zu erstellen.