Windows・Cygwinからの実行時のコマンドライン引数の数に限界がある
GroovyスクリプトをCygwinからコマンドライン実行するとき、どうもうまく動かないときがあった。どんな時に問題が発生するのかいまいち切り分けができていなかった。
実行環境
- Groovy-1.7.2
- いずれの場合もシェバングを利用してGroovyスクリプトを実行している。
CliBuilderを使用したGroovyスクリプト
"-d" や "-e" などのオプションを用意したりするとあっという間にコマンドライン引数が10ぐらいになる場合がある。この場合正常に動作しない。
"*.txt"
のような複数ファイルを引数で指定可能なGroovyスクリプト
こちらも正常に動作しない場合がある。これもファイル数が少ない場合にはうまく動作するようだが、ファイル数が一定数を越えるとスクリプトエラーとなってしまう。
startGroovy
を除いてみると・・・
Groovyスクリプト実行時に実行されるBashの一部、startGroovyにそれっぽい処理がかかれている。
201行目辺りからの処理を除いてみたら、以下のようになっていた。
Cygwinの場合は、引数が最大9つまでしか受け取れないということなのかな?
それなら今までCygwin上で動作させていたときにエラーとなっていたのがわかる。もちろんLinux上で動作させていたときはこんな問題は発生していない。
Cygwin上からコマンドラインで実行する際には、コマンドライン引数の増えすぎに注意。
ディスカッション
コメント一覧
まだ、コメントがありません