SSブログ
2010年12月30日 | 2011年01月06日 |- ブログトップ

Netbeans で groovy の execute が文字化けする [groovy]

Netbeans 6.9.1 上で groovy を使っていて、あるコマンドを execute した結果を取得した場合、 Groovy Version: 1.7.6 JVM: 1.6.0_23、Windows 7 Pro 64bit な環境では文字化けしてしまう。 例えば、dir コマンドの結果を取得したい場合、通常なら次のように記述できる。
"cmd /c dir /s /b D:\\".execute().text.eachLine {
  println it
}
しかし、同じコードをコマンドプロンプトで実行した場合は問題ないが、Netbeans 6.9.1 で実行すると文字化けしてしまう。

幸いなことに回避策を見つけたので、メモしておく。
InputStream cmdIn = "cmd /c dir /s /b D:\\".execute().in
BufferedReader reader = new BufferedReader(new InputStreamReader(cmdIn, "SJIS"));
reader.text.eachLine {
  println it
}
出力結果を InputStreamReader で取得して文字コードを指定すれば問題ないようだ。
タグ:Groovy Java
2010年12月30日 | 2011年01月06日 |- ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。