Question

Est-il possible d'exécuter une classe Groovy en spécifiant le paquet avec des points, comme java?

Exemple: Fichier ./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

Je me attendais à la dernière commande de travailler. J'ai essayé différentes façons de régler le classpath, en vain.

Était-ce utile?

La solution

Tout d'abord, package est un mot-clé réservé, vous ne pouvez pas l'utiliser comme un nom de paquet.

Deuxièmement, vous ne pouvez pas le faire en Groovy, car la notation de points est utilisé pour les classes, et non pas pour les scripts, vous avez donc besoin d'un fichier de classe compilé pour l'utiliser.

Pourtant, vous pouvez remplacer la commande groovy avec java + classpath:

java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar:. my.some.MyClass

Vous pouvez ajouter un alias à ce g_java ', par exemple, pour le rendre moins bavard.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top