我正在尝试编译位于以下位置的3个java文件: / var / www / PhpProject2 / Solutions / 5/9/1 /在我的电脑上(Linux Ubuntu)。
我在shell中使用了以下命令: javac / var / www / PhpProject2 / Solutions / 5/9/1 / * .java
并输出100个如下所示的错误:
错误:编码UTF8的不可映射字符 归并排序(ARR); //�����������������������������
箭头指向其中一个�标志。
这对我来说是新的,因为据我所知,Compilation会删除我代码中的所有注释,而不是将它们视为错误。
到目前为止我尝试过:
将命令更改为:javac -encoding UTF-8 / var / www / PhpProject2 / Solutions / 5/9/1 / * .java
查找文件编码: file -bi /var/www/PhpProject2/Solutions/5/9/1/UnionIntervals.java
然后我尝试了: javac -encoding text / x-c ++; charset = iso-8859-1 / var / www / PhpProject2 / Solutions / 5/9/1 / * .java
所有人都得到了同样的错误。
答案 0 :(得分:0)
给出以下简约Java文件:
> cat test.java
// ä
以下命令准确给出了您描述的错误:
> javac -encoding utf8 test.java
test.java:1: warning: unmappable character for encoding utf8
// ?
使用正确的编码时,处理文件时没有错误:
> javac -encoding iso-8859-1 test.java
这是因为Java编译器需要解析整个文件(包括注释)。评论仅在解析后被删除。