编译Java源时出现非法字符错误

时间:2011-11-15 20:56:57

标签: java

我的java文件有编译错误:

TestResponse.class:3: error: illegal character: \0

是否与编码有关?

4 个答案:

答案 0 :(得分:3)

它看起来像是:

  • 您正在尝试编译.class文件

  • 编译器正在读取 来自类路径的损坏的类文件。

答案 1 :(得分:0)

即使我遇到同样的问题。 问题出在文件格式上。 只需以ANSI格式而不是Unicode或UTF格式保存文件。 它适用于我的情况! 您只需在记事本中打开代码,以ANSI编码字符格式另存为即可!

答案 2 :(得分:0)

我不确定这是否是同一个问题,但可能是。我从Mac OS X压缩了一些java源代码,它编译得很好,并将其复制到Linux,我收到了这些错误:

db / src /._ SomeClass.java:1:错误:编码UTF8的不可映射字符 ... db / src /._ SomeClass.java:1:错误:非法字符:\ 0 ...

此文件在OS X上不存在,但我认为它是在我解压缩归档时创建的,因为原始.java文件具有扩展属性。

回到OS X,当我检查SomeClass.java的权限时,我可以看到这个: -rw-R - R的 - @ 权限末尾的@表示扩展属性。

要查看属性: xattr -l SomeClass.java

删除它们: xattr -c Someclass.java

在Linux上,我可以删除._SomeClass.java文件,但删除Mac OS X上的扩展属性会阻止它再次发生。

答案 3 :(得分:-1)

问题是你可能没有ANSI的编码。

如果你有Unicode编码,你会收到错误