2011-11-10 19 views
16

Sto cercando di usare groovyc, ma qualcosa non è giusto:Come posso eseguire gli script Groovy come Java, dalla riga di comando?

>echo println("Hello world") > test.groovy 
>groovy test.groovy 
Hello world 
>groovyc test.groovy 
>java -cp C:\utils\groovy-1.8.1\embeddable\groovy-all-1.8.1.jar test 
Error: Could not find or load main class test 

>dir test.class 
... 

11/10/2011 02:54 PM    7,104 test.class 

Che cosa mi manca?

risposta

17

Quando si specifica il percorso di classe con lo switch -cp, il suo valore predefinito (directory corrente) viene sovrascritto e quindi JVM non riesce a trovare la classe.

Aggiungi directory corrente al percorso di classe, e tutto funziona:

>java -cp C:\utils\groovy-1.8.1\embeddable\groovy-all-1.8.1.jar;. test 
Hello, world 
+1

ho provato prima ... indietro quando stavo aggiungendo 'c: \ utils \ groove-1,8-1 \ lib' al percorso di classe. Non l'ho provato dopo il passaggio a groovy-all, funziona come un fascino. – ripper234

+0

In Linux, sarebbe qualcosa di simile: 'java -cp" /path_to/groovy-all-x.x.x.jar :. " test' – lepe

8

Assicurarsi che se si utilizza un sistema basato su UNIX (Linux o Mac), allora avete bisogno di due punti invece di punto e virgola per separatore di ingresso classpath:

>java -cp /path/to/groovy/embeddable/groovy-all-1.8.1.jar:. test 
Hello, world 
4

non sicuro che questi frammenti funzioneranno poiché manca la classe con il metodo principale. riga di comando corretta è:

java -cp /path/to/groovy/embeddable/groovy-all-1.8.1.jar groovy.lang.GroovyShell test.groovy 
Problemi correlati