Ejecutar una clase maravillosa en un paquete desde la línea de comandos
-
06-09-2019 - |
Pregunta
¿Hay una manera de ejecutar una clase maravillosa especificando el paquete con puntos, al igual que con java?
Ejemplo: File ./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
Yo estaba esperando el último comando funcione. He intentado varias formas de establecer la ruta de clases, sin ningún resultado.
Solución
En primer lugar, paquete es una palabra clave reservada, por lo que no se puede utilizar como un nombre de un paquete.
En segundo lugar, usted no puede hacer eso en Groovy, ya que la notación de puntos se utiliza para las clases, no para las secuencias de comandos, por lo que necesita un archivo de clase compilado para utilizarlo.
Sin embargo, puede reemplazar el comando maravilloso con Java + ruta de clases:
java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar:. my.some.MyClass
Puede agregar un alias a ella 'g_java', por ejemplo, para hacerlo menos verboso.