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

StackOverflow https://stackoverflow.com/questions/261428

  •  06-07-2019
  •  | 
  •  

Вопрос

До сих пор я использовал public void run() {} методы для выполнения моего кода на Java.Когда/почему можно использовать main() или init() вместо run()?

Это было полезно?

Решение

Это своеобразный вопрос, потому что он не должен быть вопросом выбора.

Когда вы запускаете JVM, вы указываете класс для запуска, и это main() этого класса, где запускается ваша программа.

К init(), Я предполагаю, что вы имеете в виду метод JApplet.Когда апплет запускается в браузере, init() метод указанного апплета выполняется в первую очередь.

К run(), Я предполагаю, что вы имеете в виду метод Runnable.Этот метод вызывается при запуске нового потока.

  • основной:запуск программы
  • в этом:начало апплета
  • бегать:начало потока

Если Eclipse запускает ваш run() метод, даже если у вас нет main(), то он делает что-то своеобразное и нестандартное, но вполне возможное.Возможно, вам следует опубликовать пример класса, который вы запускали таким образом.

Другие советы

Метод main является точкой входа в приложение Java.

В частности, - когда виртуальной машине Java приказывают запустить приложение, указав его класс (с помощью средства запуска приложения java ), он будет искать main метод с подписью public static void main (String []) .

Из java от Sun командная страница :

  

Инструмент java запускает приложение Java. Это делает это, начиная   среда выполнения Java, загрузка указанного класса и вызов    основной метод класса.

     

Метод должен быть объявлен как public и static, он не должен возвращать   значение, и он должен принимать массив String в качестве параметра. Метод   объявление должно выглядеть следующим образом:

public static void main(String args[])

Дополнительные сведения о том, как выполняется приложение Java, см. в следующих источниках:

<Ол>
  • Глава 12. Выполнение из Спецификация языка Java, третье издание .
  • Глава 5. Связывание, загрузка, инициализация из Спецификации виртуальной машины Java, второе издание .
  • Подробное описание " Hello World " Приложение из учебных пособий по Java .
  • <Ч>

    Метод run является точкой входа для нового Thread или класс, реализующий интерфейс Runnable . Он не вызывается виртуальной машиной Java, когда он запускается командой java .

    Сама Thread или Runnable не может быть запущена непосредственно виртуальной машиной Java, поэтому она должна вызываться Thread.start () метод. Это может быть выполнено путем создания экземпляра Thread и вызова его метода start в методе main приложения:

    public class MyRunnable implements Runnable
    {
        public void run()
        {
            System.out.println("Hello World!");
        }
    
        public static void main(String[] args)
        {
            new Thread(new MyRunnable()).start();
        }
    }
    

    Для получения дополнительной информации и примера того, как запустить подкласс Thread или класс, реализующий Runnable , см. Определение и запуск потока из учебников по Java.

    <Ч>

    Метод init является первым методом, вызываемым в Апплет или JApplet .

    Когда апплет загружается плагином Java браузера или программой просмотра апплета, он сначала вызывает метод Applet.init . Любые инициализации, которые требуются для использования апплета, должны быть выполнены здесь. После завершения метода init вызывается метод start .

    Дополнительную информацию о том, когда вызывается метод апплета init , читайте о жизненном цикле апплета на странице

    В Java есть специальный статический метод:

    public static void main(String[] args) { ... }
    

    который выполняется в классе, когда класс запускается из командной строки Java:

    $ java Class
    

    будет выполнять указанный метод в классе " Class " если бы он существовал.

    public void run() { ... }
    

    требуется интерфейсом Runnable или наследуется от класса Thread при создании новых потоков.

    Метод main () является точкой входа для приложения Java. run () обычно используется для новых потоков или задач.

    Где вы писали метод run () , какое приложение вы пишете (например, Swing, AWT, консоль и т. д.) и какова ваша среда разработки?

    как начинающий, я импортирую пакеты acm, и в этом пакете run () начинает выполнение потока, init () инициализирует Java-апплет.

    scroll top