Gibt es eine Möglichkeit, eine Groovy-Klasse auszuführen, indem Sie das Paket mit Punkten angeben, wie mit Java?Ausführen einer Groovy-Klasse in einem Paket über die Befehlszeile
Beispiel: Die Datei ./my/package/MyClass.groovy:
package my.package
class MyClass {
static void main(String[] args) {
println "ok"
}
}
> cd my/package my/package> groovy MyClass ok > cd ../.. > groovy my/package/MyClass.groovy ok > groovy my/package/MyClass ok > groovy my.package.MyClass Caught: java.io.FileNotFoundException: my.package.MyClass
Ich war der letzte Befehl erwartet zu arbeiten. Ich habe verschiedene Möglichkeiten ausprobiert, den Klassenpfad zu setzen, ohne Erfolg.
Es klingt wie die richtige Antwort, aber es funktioniert nicht. Ich habe übrigens "my.package" als Beispiel benutzt - ein schlechter, den ich realisiere. Wie auch immer, selbst mit einem akzeptablen Paketnamen und nach der Kompilierung mit groovyc funktioniert es nicht. groovyc meine/einige/MyClass.groovy exportieren CLASSPATH =. ls mein/some/MyClass.class mein/some/MyClass.class groovy my.some.MyClass Erwischt: java.io.FileNotFoundException: /Users/olivier/my.some.MyClass (/ Users/olivier/my.some.MyClass) ? –
Sie haben Recht, ich weiß nicht, wie ich das vermisst habe. Wenn es Ihnen nichts ausmacht, ein bisschen zu betrügen, können Sie den Befehl groovy durch java + classpath ersetzen: java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar :. my.some.MyClass Sie können ein Alias 'g_java' hinzufügen, um es weniger ausführlich zu machen. –
Danke. Es klappt. Die Antwort auf meine ursprüngliche Frage lautet also: Nein, in Groovy funktioniert das nicht. Sie müssen Javac und Java verwenden. –