Невозможно скомпилировать Java-код [Знак порядка байтов Unicode 65279]

, я написал простую программу на 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
задан 12 March 2013 в 20:42

3 ответа

Этот дополнительный символ обычно будет в начале первого слова документа.

В моем коде все слова в документе хранятся в массиве word [].

Мы можем игнорировать этот символ, используя:

   if((int)word[0].charAt(0)==65279)
         word[0]=word[0].substring(1);
0
ответ дан 12 March 2013 в 20:42

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, например eclipse или netbeans для программирования на Java. Это может защитить вас от некоторых тонких проблем (например, кодировка файлов свойств должна быть латинской-1).

0
ответ дан 12 March 2013 в 20:42

Если вы используете IDE, нет проблем с компиляцией кода. Вы вручную пишете код в (notepad, notepad ++), используете кодировку encode в UTF-8, а затем компилируете код.

В противном случае используйте:

javac -encoding UTF8 yourclassname.java
0
ответ дан 12 March 2013 в 20:42

Другие вопросы по тегам:

Похожие вопросы: