Pergunta

Existe uma maneira de executar uma classe Groovy, especificando o pacote com pontos, como em java?

Exemplo: Arquivo ./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

Eu estava esperando o último comando de trabalho. Eu tentei várias maneiras de definir o caminho de classe, sem sucesso.

Foi útil?

Solução

Em primeiro lugar, pacote é uma palavra-chave reservada, para que você não pode usá-lo como um nome de um pacote.

Em segundo lugar, você não pode fazer isso em Groovy, uma vez que a notação de ponto é usada para as aulas, não para scripts, então você precisa de um arquivo de classe compilado para usá-lo.

Ainda assim, você pode substituir o comando groovy com java + classpath:

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

Você pode adicionar um alias para ele 'g_java', por exemplo, para torná-lo menos extenso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top