Java main() method cor­res­pond au point d’entrée et au point de sortie de chaque programme. Lors de l’exécution, seules les ins­truc­tions qui sont comprises dans son domaine de validité entrent en ligne de compte. Il est par con­sé­quent tout aussi important de respecter la syntaxe de la méthode à la lettre lors de la création du code. Si elle est in­cor­recte, le programme ne pourra pas s’exécuter.

Qu’est-ce que Java main() method ?

Quel que soit le projet que vous souhaitez con­cré­ti­ser à l’aide du langage de pro­gram­ma­tion ou la longueur du code que vous souhaitez utiliser à cet effet : vous ren­con­tre­rez toujours Java main() method au début de toute ap­pli­ca­tion. En son absence, le code ne peut pas être exécuté. Avant de le soumettre à main(), la machine virtuelle Java (en anglais Java virtual machine, abr. JVM) est chargée en mémoire et le code est compilé. Une fois ces étapes terminées, le code est soumis à la méthode Java main () à des fins de contrôle et sera exécuté cor­rec­te­ment, selon toute espérance. En principe, il est également possible d’utiliser plusieurs de ces méthodes, avec au maximum une méthode main par classe.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

La syntaxe de la méthode main() en Java

La syntaxe de la méthode main() en Java est toujours la même et se compose de plusieurs parties im­por­tantes. La méthode s’apparente à ceci :

public static void main(String[] args)
java

Ces com­po­santes rem­plis­sent les fonctions suivantes :

  • public : garantit qu’une classe est également ac­ces­sible de l’extérieur.
  • static : la méthode est déclarée statique. Cela lui permet d’exister sans qu’un objet d’une classe par­ti­cu­lière ne soit constitué à l’avance.
  • void : garantit que la méthode main() n’a pas besoin de retourner une valeur en Java . -main : il s’agit du nom qui permet à la machine virtuelle Java d’iden­ti­fier la méthode dès qu’elle exécute un programme.
  • String[] args : il s’agit ici d’un tableau où l’on peut ren­seig­ner les arguments de ligne de commande et les trans­mettre.

Les com­po­sants in­di­vi­duels et leur utilité

Pour mieux com­prendre comment fonc­tionne la méthode main() en Java et pourquoi toutes les com­po­santes sont si im­por­tantes, nous les passons in­di­vi­duel­le­ment en revue dans les sections suivantes. Ce faisant, nous sou­hai­tons surtout vous montrer ce qui se passe quand une partie de la signature fait défaut. Nous partons d’un exemple de code très simple, que nous sortons avec la commande Java system.out.println. Il se présente comme suit :

public class main {
	public static void main(String[] args) {
		System.out.println("Votre exemple de texte apparait ici.");
	}
}
bash

Lorsque vous exécutez ce code, vous obtenez le résultat suivant :

Votre exemple de texte apparait ici.
bash

public

« public » agit en tant que spé­ci­fi­ca­teur d’accès et signale à la machine virtuelle Java où le programme cor­res­pon­dant est exécuté. Il existe d’autres mo­di­fi­ca­teurs d’accès tels que « default », « private » ou « protected ». Cependant, un message d’erreur va ap­pa­raitre si vous les utilisez dans Java main() method :

public class main {
	private static void main(String[] args) {
		System.out.println("Votre exemple de texte apparait ici.");
	}
}
bash

Le résultat cor­res­pond à :

Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
bash

Ce message d’erreur indique l’absence d’accès public à la méthode.

static

Le mot-clé « static » confirme que la méthode utilisée est statique. Il peut également être utilisé in­dé­pen­dam­ment de toute instance de classe créée. Si vous supprimez la dé­cla­ra­tion comme « static », le code ressemble à ceci :

public class main {
	public void main(String[] args) {
		System.out.println("Votre exemple de texte apparait ici.");
	}
}
bash

Ici aussi, un message d’erreur se présente au lieu de la sortie souhaitée :

Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)
bash

void

« void » est un mot-clé qui spécifie que Java main() method ne doit pas retourner de valeurs. main() étant le point d’entrée et de sortie d’un programme en Java, la lecture serait inutile. Le code se pré­sen­te­rait donc comme suit en l’absence de « void » :

public class main {
	public static main(String[] args) {
		System.out.println("Votre exemple de texte apparait ici.");
	}
}
bash

Ceci est le message d’erreur déclenché par l’omission du mot-clé :

Error: Main method must return a value of type void in class Main, please define the main method as:
public static void main(String[] args)
bash

main

Pour chaque programme en Java, la JVM recherche d’abord l’iden­ti­fiant « main ». Cela indique où l’exécution doit commencer et se terminer. Une fois Java main() method terminée, la sortie est également terminée. Par con­sé­quent, cette signature ne doit jamais être modifiée ni complétée. Si nous procédons toutefois ainsi dans notre exemple, le code ressemble à ceci :

public class main {
	public static void remplaceMain(String[] args) {
		System.out.println("Votre exemple de texte apparait ici.");
	}
}
bash

Comme la JVM ne peut pas retrouver l’iden­ti­fiant, elle quitte le programme di­rec­te­ment et émet uni­que­ment le message d’erreur suivant :

Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
bash

String[] args

Le tableau « String[] args » cor­res­pond à la classe java.lang.String et contient des données stockées sous forme de valeurs de chaîne. Si vous ne le spécifiez pas, ceci modifie le code comme suit :

public class main {
	public static void main() {
		System.out.println("Votre exemple de texte apparait ici.");
	}
}
bash

Sans l’argument, il est im­pos­sible d’exécuter la méthode main() en Java et vous observez à nouveau le message d’erreur suivant :

Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
bash

Notation al­ter­na­tive

L’exemple de code exposé ici a été écrit selon la syntaxe la plus courante. Vous pouvez cependant la modifier lé­gè­re­ment si vous en attendez une meilleure vue d’ensemble. Il est ainsi possible de placer les crochets di­rec­te­ment derrière « args ». Cela se présente comme suit :

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

Vous pouvez également ren­seig­ner des arguments comme « varargs », c’est-à-dire comme des listes d’arguments variables :

public static void main(String…args) { }
java
Conseil

Notre Digital Guide vous propose de nombreux autres articles sur le thème de Java. Nous avons ainsi comparé Java avec Ja­vaS­cript et vous pré­sen­tons les prin­ci­paux opé­ra­teurs Java.

46f59be9bea32ee61adf24c3524c329c
Aller au menu principal