Мой компьютер настроен на японский язык (эй, это хорошая языковая практика), и все в порядке и отлично ... кроме javac
. Он отображает локализованные сообщения об ошибках на консоли, но они находятся в Shift-JIS, а не в UTF8:
$ 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