Точка входа для приложений Java:main(), init() или run()?
Вопрос
До сих пор я использовал 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, см. в следующих источниках:
<Ол> Метод 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-апплет.