我的电脑是用日语安装的(嘿,这是很好的语言练习),一切都很好.除了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工具链本地化的文档是不存在的,至少来自谷歌。
增编:
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发布于 2010-03-15 22:26:35
在日本环境中,这是OS上众所周知的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"发布于 2010-03-15 09:34:53
您在终端中启用了哪些字符编码?我猜它不允许javac使用的编码。查看“首选项”>“编码”。
https://stackoverflow.com/questions/2444712
复制相似问题