Introduction
La méthode main
de Java est généralement la première méthode que vous apprenez lorsque vous commencez à programmer en Java, car c’est le point d’entrée pour exécuter un programme Java. La méthode main
peut contenir du code à exécuter ou appeler d’autres méthodes, et elle peut être placée dans n’importe quelle classe faisant partie d’un programme. Les programmes plus complexes ont généralement une classe qui ne contient que la méthode main
. La classe qui contient la méthode main
peut avoir n’importe quel nom, bien que vous puissiez simplement appeler la classe Main
.
Dans les exemples qui suivent, la classe qui contient la méthode main
est appelée Test
:
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
Dans cet article, vous apprendrez le sens de chaque composant de la méthode main
.
Syntaxe de la méthode principale Java
La syntaxe de la méthode main
est toujours la suivante :
public static void main(String[] args){
// some code
}
Vous ne pouvez changer que le nom de l’argument du tableau String
. Par exemple, vous pouvez changer args
en myStringArgs
. L’argument du tableau String
peut être écrit comme String... args
ou String args[]
.
public
L’indicateur d’accès de la méthode main
doit être public
afin que la JRE puisse accéder et exécuter cette méthode. Si une méthode n’est pas publique, l’accès est restreint. Dans l’exemple de code suivant, la méthode main
est dépourvue de l’indicateur d’accès public
:
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
Lorsque vous compilez et exécutez le programme, l’erreur suivante se produit car la méthode main
n’est pas publique et la JRE ne peut pas la trouver :
- javac Test.java
- java Test
OutputError: Main method not found in class Test, please define the `main` method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
static
Lorsque le programme Java démarre, aucun objet de la classe n’est présent. La méthode main
doit être static
afin que la JVM puisse charger la classe en mémoire et appeler la méthode main
sans créer d’instance de la classe au préalable. Dans l’exemple de code suivant, la méthode main
est dépourvue du modificateur static
:
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
Lorsque vous compilez et exécutez le programme, l’erreur suivante se produit car la méthode main
n’est pas static
:
- javac Test.java
- java Test
OutputError: Main method is not static in class Test, please define the `main` method as:
public static void main(String[] args)
void
Chaque méthode Java doit fournir le type de retour. Le type de retour de la méthode Java main
est void
car elle ne retourne rien. Lorsque la méthode main
a fini son exécution, le programme Java se termine, donc il n’y a pas besoin d’un objet retourné. Dans l’exemple de code suivant, la méthode main
tente de retourner quelque chose alors que le type de retour est void
:
public class Test {
public static void main(String[] args){
return 0;
}
}
Lorsque vous compilez le programme, l’erreur suivante se produit car Java n’attend pas de valeur de retour lorsque le type de retour est void
:
- javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
main
La méthode main
Java est toujours nommée main
. Lorsqu’un programme Java démarre, il recherche toujours la méthode main
. L’exemple de code suivant montre une méthode main
renommée en myMain
:
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
Lorsque vous compilez et exécutez le programme, l’erreur suivante se produit car le JRE ne peut pas trouver la méthode main
dans la classe:
- javac Test.java
- java Test
OutputError: Main method not found in class Test, please define the `main` method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
String[] args
La méthode main
de Java accepte un seul argument de type tableau String
. Chaque chaîne dans le tableau est un argument de ligne de commande. Vous pouvez utiliser les arguments de ligne de commande pour influencer le fonctionnement du programme ou pour transmettre des informations au programme en cours d’exécution. L’exemple de code suivant montre comment imprimer les arguments de ligne de commande que vous saisissez lorsque vous exécutez le programme :
public class Test {
public static void main(String[] args){
for(String s : args){
System.out.println(s);
}
}
}
Lorsque vous compilez le programme puis l’exécutez avec quelques arguments de ligne de commande séparés par des espaces, les arguments sont imprimés dans le terminal :
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
Conclusion
Dans cet article, vous avez appris chaque composant de la méthode main
de Java. Continuez votre apprentissage avec plus de tutoriels Java.