首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OS : javac的终端输出被混淆了

问OS : javac的终端输出被混淆了
EN

Stack Overflow用户
提问于 2010-03-15 02:16:22
回答 2查看 1K关注 0票数 3

我的电脑是用日语安装的(嘿,这是很好的语言练习),一切都很好.除了javac。它将本地化错误消息显示到控制台,但它们位于Shift-JIS中,而不是UTF8:

代码语言:javascript
复制
$ 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传输输出,它是可读的,但这并不是一个真正的解决方案:

代码语言:javascript
复制
$ 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本身以英语输出所有消息(这很好)。

以下是我所处环境的相关部分:

代码语言:javascript
复制
LC_CTYPE=UTF-8
LANG=ja_JP.UTF-8

从表面上看,javac没有正确地提取编码,而java也根本没有掌握语言。我也尝试过-Dfile.encoding=utf8,但这是不存在的,而且关于JVM工具链本地化的文档是不存在的,至少来自谷歌。

增编:

Macports OpenJDK6有更好的行为:

代码语言:javascript
复制
$ /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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-15 22:26:35

在日本环境中,这是OS上众所周知的javac故障。我自己也做过一些谷歌搜索,但我还没有找到根本的治疗方法。目前,我使用的临时解决方案是

代码语言:javascript
复制
javac -J-Dfile.encoding=utf8

它给出了用UTF-8编码的日语错误信息。注意,这不是-D,而是-J-D。如果要使用英文的错误消息,请使用

代码语言:javascript
复制
 LC_ALL=C javac -J-Dfile.encoding=utf8

如果你愿意的话,你可以把它们变成化名:

代码语言:javascript
复制
 alias javac="LC_ALL=C javac -J-Dfile.encoding=utf8"
票数 1
EN

Stack Overflow用户

发布于 2010-03-15 09:34:53

您在终端中启用了哪些字符编码?我猜它不允许javac使用的编码。查看“首选项”>“编码”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2444712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档