gpt4 book ai didi

java - OS X : Terminal output of javac is garbled

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:39 27 4
gpt4 key购买 nike

我已经用日语设置了我的电脑(嘿,这是很好的语言练习),一切都很好而且很漂亮...除了 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 を使用します

Everything else 在命令行中工作正常(使用 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"

关于java - OS X : Terminal output of javac is garbled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com