No Programming, No Life

プログラミング関連の話題や雑記

Groovy実行時エラー

以下の様なクロージャを使って、ファイルを1行ずつ読み込む強力なGroovyスクリプトを作成し実行してみたんですが、エラーが発生しました。

File.groovy

1: import java.lang.io.*
2: 
3: new File("sample.txt").eachLine{ line ->
4: 	println "${line}"
5: }

実行結果


C:\work\gv>groovy File.groovy
Caught: groovy.lang.GroovyRuntimeException: Could not find matching constructor
String)
at File.run(File.groovy:3)
at File.main(File.groovy)

ずっと原因がわからなかったんですが、よく考えたら、ファイル名が「File.groovy」なのが良くないようです*1
ファイル名をFile以外に変えたら無事動きました。

実行結果


C:\work\gv>groovy File2.groovy
aaaaaaaaaa
bbbbbbbbbb
cccccccccc

sample.txtの内容


aaaaaaaaaa
bbbbbbbbbb
cccccccccc

スクリプトなんで、実際にどんな.classファイルが作成されるかを意識しながら使わないといかんようですね。うむ。

*1:JDKのFileクラスをかき消すみたい。