読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

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クラスをかき消すみたい。