, я написал простую программу на 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
Я пробовал поискать на многих форумах, но не нашел ответа. Как я могу решить эту проблему?
Любая помощь приветствуется.
Спасибо.
Этот дополнительный символ обычно будет в начале первого слова документа.
В моем коде все слова в документе хранятся в массиве word [].
Мы можем игнорировать этот символ, используя:
if((int)word[0].charAt(0)==65279)
word[0]=word[0].substring(1);
illegal character: \65279
, это звучит как проблема кодирования.
file -bi Example.java
javac
, например, javac -encoding UTF-8 Example.java
Также имейте в виду, что десятичное 65279 является шестнадцатеричным FEFF. Который известен как метка порядка байтов Unicode (BOM). В UTF-8 эта информация вводит в заблуждение, потому что это всегда 8-битный, а не 16-битный поток.
javac
не может справиться с этим. Так что пользуйтесь другим редактором, который не занимается таким бесполезным делом.
Кстати: Лучше использовать IDE, например eclipse или netbeans для программирования на Java. Это может защитить вас от некоторых тонких проблем (например, кодировка файлов свойств должна быть латинской-1).
Если вы используете IDE, нет проблем с компиляцией кода. Вы вручную пишете код в (notepad, notepad ++), используете кодировку encode в UTF-8, а затем компилируете код.
В противном случае используйте:
javac -encoding UTF8 yourclassname.java