私は自分のコンピューターを日本語でセットアップしました(ねえ、それは良い言語の練習です)、そしてすべてがうまくてダンディです...を除いてjavac
。ローカライズされたエラーメッセージがコンソールに表示されますが、それらはUTF8ではなくShift-JISにあります。
$ javac this-file-doesnt-exist.java
javac: ?t?@?C??????????܂???: this-file-doesnt-exist.java
?g????: javac <options> <source files>
?g?p?\?ȃI?v?V?????̃??X?g?ɂ??ẮA-help ???g?p???܂
出力をパイプでnkf -w
つなぐと、読み取り可能になりますが、それはあまり解決策ではありません。
$ javac this-file-doesnt-exist.java 2>&1 | nkf -w
javac: ファイルが見つかりません: this-file-doesnt-exist.java
使い方: javac <options> <source files>
使用可能なオプションのリストについては、-help を使用します
他のすべては、コマンドラインから(UTF8で)正常に機能します。私は日本語でファイル名を入力でき、タブ補完は正常に機能し、viはUTF-8ファイルを編集できます。java
それ自体はすべてのメッセージを英語で吐き出しますが(これは問題ありません)。
これが私の環境の関連部分です:
LC_CTYPE=UTF-8
LANG=ja_JP.UTF-8
見た目からするとjavac
、エンコーディングを適切にjava
取得しておらず、言語をまったく取得していません。私も試し-Dfile.encoding=utf8
ましたが、それは灘であり、JVMツールチェーンのローカリゼーションに関するドキュメントは、少なくともGoogleからはほとんど存在しません。
補遺:
MacportsOpenJDK6の動作は次のとおりです。
$ /opt/local//share/java/openjdk6_bootstrap/bin/javac this-file-doesnt-exist.java
javac: file not found: this-file-doesnt-exist.java
Usage: javac <options> <source files>
use -help for a list of possible options