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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top