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

编译Java源代码时出现非法字符错误,java,Java,我的java文件有编译错误: TestResponse.class:3: error: illegal character: \0 它与编码有关吗?它看起来像: 您正在尝试编译一个.class文件 编译器正在读取一个 类路径中的类文件已损坏 就连我也面临同样的问题。 问题在于文件格式。 只需将文件保存为ANSI格式,而不是Unicode或UTF格式。 在我的情况下它起作用了! 您只需在记事本中打开代码并以ANSI编码字符格式另存为即可 问题是您可能没有ANSI上的编码 如果您使用Unicod

我的java文件有编译错误:

TestResponse.class:3: error: illegal character: \0
它与编码有关吗?

它看起来像:

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

  • 编译器正在读取一个 类路径中的类文件已损坏


    • 就连我也面临同样的问题。 问题在于文件格式。 只需将文件保存为ANSI格式,而不是Unicode或UTF格式。 在我的情况下它起作用了!
      您只需在记事本中打开代码并以ANSI编码字符格式另存为即可

      问题是您可能没有ANSI上的编码


      如果您使用Unicode编码,您将收到错误

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

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

      这个文件在OSX上不存在,但我认为它是在我解除存档时创建的,因为原始的.java文件具有扩展属性

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

      要查看属性,请执行以下操作: xattr-lsomeclass.java

      要删除它们,请执行以下操作: xattr-csomeclass.java


      在Linux上,我可以删除.u SomeClass.java文件,但是删除Mac OS X上的扩展属性可以防止这种情况再次发生。

      我们需要一些代码!你确定你没有试图编译一个
      .class
      文件吗?对我来说,这似乎是一个换行编码错误,正如前面提到的,如果看不到更多,就很难说了。并确保编译.java文件,然后运行.class,而不是相反。我使用的是Java1.7,所以出现了这个问题。切换到Java1.6修复了这个问题。在我的机器崩溃之前,由于文件系统损坏,我遇到了这个错误消息!在我的例子中,我正在编译一个.java文件,但在将更改还原到该文件后,它被归零。