So-net無料ブログ作成
検索選択

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 で取得して文字コードを指定すれば問題ないようだ。
タグ:Java Groovy

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。