Как JVM использует "Основной метод" для запуска программы Java?

main не является ключевым словом в java. Как JVM знает, как выполнить метод main в качестве отправной точки для любой программы?

Ответ 1

main не обязательно должно быть ключевым словом в java, чтобы JVM мог найти его в начале выполнения. Не существует конфликта с другими методами или переменными, также называемыми main. Это просто то, как была разработана спецификация JVM. Скорее всего, он был заимствован на языке c.

Ссылки на Java: ключевые слова, вызов main.

Ответ 2

Он просто указан в JLS.

12 Выполнение

...

Виртуальная машина Java запускается путем загрузки указанного класса и последующего вызова метода main в этом указанном классе. Раздел §12.1 описывает шаги загрузки, компоновки и инициализации, выполняемые при выполнении main, в качестве введения к концепциям в этой главе. Дальнейшие разделы описывают детали загрузки (§12.2), связывая (§12.3 ) и инициализация (§12.4).

...

12.1 Запуск виртуальной машины

Виртуальная машина Java запускает выполнение, вызывая метод main определенного класса, передавая ему единственный аргумент, который представляет собой массив строк. В примерах в этой спецификации этот первый класс обычно называется Test.

...

12.1.4 Вызовите Test.main

Наконец, после завершения инициализации для класса Test (в течение которого могла произойти другая последующая загрузка, связывание и инициализация), вызывается метод main of Test.

Метод main должен быть объявлен public, static и void. Он должен принять один аргумент, который представляет собой массив строк.

Ответ 3

Он вызывает этот метод с помощью отражения. Например, вы можете посмотреть источники Java Web Start

Ответ 4

В принципе, каждый язык был более или менее похож на своего предшественника. На языке C это main(), который выполняется сначала, но не обязательно, чтобы это происходило все время. Также могут выполняться программы без основного метода. Итак, это просто соглашение, по которому сначала вызывается основной метод.

проверьте:

Точка входа для приложений Java: main(), init() или run()?

Программа C без основной функции?

Ответ 5

Main - это, в основном, универсальный индикатор центрального метода, поэтому Java автоматически делает его центральным методом при условии публичного статического

public static void main