Jusqu'à présent, j'utilise des méthodes public void run() {}
pour exécuter mon code en Java. Quand/pourquoi peut-on vouloir utiliser main()
ou init()
au lieu de run()
?
C'est une question particulière car ce n'est pas censé être une question de choix.
Lorsque vous lancez la JVM, vous spécifiez une classe à exécuter, et c'est la main()
de cette classe où votre programme démarre.
Par init()
, je suppose que vous entendez la méthode JApplet. Lorsqu'une applet est lancée dans le navigateur, la méthode init()
de l'applet spécifiée est exécutée comme premier ordre du jour.
Par run()
, je suppose que vous entendez la méthode de Runnable. Il s'agit de la méthode invoquée lorsqu'un nouveau thread est démarré.
Si Eclipse exécute votre méthode run()
même si vous n'avez pas de main()
, alors il fait quelque chose de particulier et non standard, mais pas irréalisable. Vous devriez peut-être publier un exemple de classe que vous avez exécutée de cette façon.
La méthode main
est le point d'entrée d'une application Java.
Plus précisément 、 lorsque la machine virtuelle Java Java est invitée à exécuter une application en spécifiant sa classe (en utilisant le lanceur d'application Java
), elle recherchera le main
méthode avec la signature de public static void main(String[])
.
Depuis la page de commande de Sun Java
:
L'outil Java lance une application Java. Il le fait en démarrant un environnement d'exécution Java, en chargeant une classe spécifiée, et en invoquant la méthode main de cette classe.
La méthode doit être déclarée publique et statique, elle ne doit renvoyer aucune valeur et elle doit accepter un tableau
String
comme paramètre. La déclaration de méthode doit ressembler à ceci:public static void main(String args[])
Pour des ressources supplémentaires sur la façon dont une application Java est exécutée, veuillez vous référer aux sources suivantes:
La méthode run
est le point d'entrée pour une nouvelle interface Thread
ou une classe implémentant l'interface Runnable
. Il n'est pas appelé par la Java Virutal Machine lorsqu'il est démarré par la commande Java
.
Comme un Thread
ou Runnable
lui-même ne peut pas être exécuté directement par la machine virtuelle Java, il doit donc être appelé par la méthode Thread.start()
Cela peut être accompli en instanciant un Thread
et en appelant sa méthode start
dans la méthode main
de l'application:
public class MyRunnable implements Runnable
{
public void run()
{
System.out.println("Hello World!");
}
public static void main(String[] args)
{
new Thread(new MyRunnable()).start();
}
}
Pour plus d'informations et un exemple sur la façon de démarrer une sous-classe de Thread
ou une classe implémentant Runnable
, voir Définir et démarrer un thread à partir de Java Tutoriels.
La méthode init
est la première méthode appelée dans un Applet ou JApplet .
Lorsqu'une applet est chargée par le Java d'un navigateur ou par une visionneuse d'applet, elle appelle d'abord la méthode Applet.init
. Toutes les initialisations requises pour utiliser l'applet doivent Une fois la méthode init
terminée, la méthode start
est appelée.
Pour plus d'informations sur l'appel de la méthode init
d'une applet, lisez le cycle de vie d'une applet dans The Life Cycle of an Applet from the Java Tutoriels.
Voir aussi: Comment faire des applets à partir du tutoriel Java.
Java a une méthode statique spéciale:
public static void main(String[] args) { ... }
qui est exécuté dans une classe lorsque la classe est démarrée avec une ligne de commande Java:
$ Java Class
exécuterait ladite méthode dans la classe "Class" si elle existait.
public void run() { ... }
est requis par l'interface Runnable ou hérité de la classe Thread lors de la création de nouveaux threads.
La méthode main()
est le point d'entrée pour une application Java. run()
est généralement utilisée pour les nouveaux threads ou tâches.
Où avez-vous écrit une méthode run()
, quel type d'application écrivez-vous (par exemple Swing, AWT, console, etc.) et quel est votre environnement de développement?