質問

私はコンピューターを日本語でセットアップしました (これは良い言語練習になります)、すべてが順調で順調です...を除外する 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 からはまったく存在しません。

補遺:

Macports OpenJDK6 の動作が向上しました。

$ /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
役に立ちましたか?

解決

これは日本語環境でOS X上のjavacのよく知られたグリッチです。 私は、グーグルのビットは自分自身を検索し行っていた、と私は根本的な治療法を発見しました。今のところ、私が使用している一時的な解決策がある。

javac -J-Dfile.encoding=utf8

UTF-8でエンコードされた日本でのエラーメッセージを与えます。それは-Dが、-J-Dていないことに注意してください。あなたは英語でエラーメッセージが必要な場合は、使用します。

 LC_ALL=C javac -J-Dfile.encoding=utf8
あなたがしたい場合は、

あなたは、常に、エイリアスにそれらを作ることができます:

 alias javac="LC_ALL=C javac -J-Dfile.encoding=utf8"

他のヒント

ターミナルでどの文字エンコーディングを有効にしましたか?javac が使用しているエンコードが許可されていないと思います。[設定] > [エンコーディング] を確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top