Я хотел скомпилировать простую Java программу «Hello World», как это было представлено в GeeksforGeeks Hello World Tutorial , используя gcj
в Linux Ubuntu. Это исходный код:
class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello, World");
}
}
Но gcj
выдал две ошибки:
- (. Text + 0x18): неопределенная ссылка на
main
- collect2: ошибка: ld вернул 1 состояние выхода
Исходный вывод с терминала:
gcj -o helloworld HelloWorld.java
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status
Я бы обратил внимание на требование, чтобы файл. java был назван в честь класса, который содержит main
:
Важные моменты:
- Имя класса, определенного Программа HelloWorld, которая совпадает с именем файла (HelloWorld. java). Это не случайность. В Java все коды должны находиться внутри класса, и существует не более одного публикуемого c класса, который содержит метод main ().
- По соглашению, имя основного класса (класса, который содержит main method) должен совпадать с именем файла, содержащего программу.
Что я делаю не так?