无法编译 Java 代码

无法编译 Java 代码

我用文本编辑器编写了一个简单的 Java 程序gedit

public class Example{
    public static void  main (String args [])
    {
    System.out.println("hi yaar");
    }
}

当我尝试在终端上编译它时,它抛出了很多错误,我不知道为什么。它应该可以工作。

错误如下:

arvind@arvind-HP-Pavilion-g6-Notebook-PC:~/Documents$ javac Example.java

Example.java:1: error: illegal character: \65279

public class Example{
       ^

Example.java:1: error: class, interface, or enum expected

public class Example{
          ^
Example.java:2: error: class, interface, or enum expected

public static void  main (String args [])
          ^

Example.java:5: error: class, interface, or enum expected

}
^

4 errors

我尝试搜索了很多论坛,但没有找到答案。我该如何解决这个问题?

任何帮助均感激不尽。

谢谢。

答案1

illegal character: \65279,这听起来像是编码问题。

  1. 检查源代码文件的编码:file -bi Example.java
  2. 使用编码作为选项javac,例如javac -encoding UTF-8 Example.java

还请记住,十进制 65279 是十六进制 FEFF。这被称为 Unicode 字节顺序标记 (BOM)。在 UTF-8 中,此信息具有误导性,因为它始终是 8 位而不是 16 位流。

javac无法处理这个问题。所以请使用其他没有这种繁琐工作的编辑器。

顺便提一句:最好使用类似这样的 IDE或者网豆用于 Java 编程。这可以保护您免受一些微妙的问题(例如,属性文件的编码必须是 latin-1)。

答案2

这个额外的字符通常位于文档第一个单词的开头。

在我的代码中,文档中的所有单词都存储在数组word[]中。

我们可以使用以下方法忽略该字符:

   if((int)word[0].charAt(0)==65279)
         word[0]=word[0].substring(1);

答案3

如果你用的是IDE,编译代码是没有问题的,你手动在(notepad,notepad++)里写代码,用UTF-8编码,然后编译代码。

否则使用:

javac -encoding UTF8 yourclassname.java

相关内容