2011-11-10 47 views
16

私はgroovycを使用しようとしているが、何かが右ではありません:私はコマンドラインからGroovyスクリプトをJavaとして実行するにはどうすればよいですか?

>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 

何をしないのですか?

答えて

17

-cpスイッチでクラスパスを指定すると、そのデフォルト値(カレントディレクトリ)が上書きされるため、JVMはクラスを見つけることができません。

は、クラスパスにカレントディレクトリを追加し、すべてが動作します:

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

は私が前に...戻って私は 'Cを追加されたときにすることを試みました。 groovy-allに切り替えた後に試してみたことがない、魅力的な作品です。 – ripper234

+0

Linuxでは、 'java -cp" /path_to/groovy-all-x.x.x.jar: "となります。テスト ' – lepe

8

あなたは、UNIXベースのシステム(LinuxやMacintosh)を使用している場合は、そのクラスパスエントリの区切りのための代わりにセミコロンのコロンが必要であることを確認してください:

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

メインメソッドのクラスが見逃されているため、これらのスニペットが機能しないことがわかりません。 適切なコマンドラインは次のとおりです。クラスパスに\ utilsの\グルーヴィー-1.8-1 \ lib`:

java -cp /path/to/groovy/embeddable/groovy-all-1.8.1.jar groovy.lang.GroovyShell test.groovy 
関連する問題