logo

Méthode Java main() – public static void main (String[] args)

La méthode main() de Java est le point de départ à partir duquel JVM démarre l'exécution d'un programme Java. JVM n'exécutera pas le code s'il manque au programme la méthode principale. Il s’agit donc de l’une des méthodes les plus importantes de Java, et il est très important de bien la comprendre.

Le compilateur Java ou JVM recherche la méthode principale lorsqu'il commence à exécuter un programme Java. La signature de la méthode principale doit être spécifique pour que la JVM reconnaisse cette méthode comme son point d'entrée. Si on change la signature de la méthode, le programme se compile mais ne s'exécute pas.



L'exécution du programme Java, le java.exe est appelé. Le Java.exe effectue à son tour des appels Java Native Interface ou JNI, et charge la JVM. Le java.exe analyse la ligne de commande, génère un nouveau tableau de chaînes et appelle la méthode main(). Par défaut, le thread principal est toujours un thread non démon.

Syntaxe de la méthode main()

La syntaxe de la méthode main() s'écrit toujours comme suit :

java ouvrant un fichier

Syntaxe de la méthode Java main()



Exemple

La méthode la plus courante dans la définition de la méthode main() est illustrée dans l'exemple ci-dessous.

Java
// Java Program to demonstrate the // syntax of the main() function class techcodeview.com {  public static void main(String[] args)  {  System.out.println('I am a Geek');  } }>

Sortir
I am a Geek>

Chaque mot du public statique vide principal L'instruction a une signification dans la JVM décrite ci-dessous :

1. Publique

C'est un Modificateur d'accès , qui précise d'où et qui peut accéder à la méthode. Rendre la méthode main() publique la rend disponible mondialement. Il est rendu public afin que JVM puisse l'invoquer depuis l'extérieur de la classe car il n'est pas présent dans la classe actuelle.



Si la méthode principale n’est pas publique, son accès est restreint.

Exemple:

Java
// Java Program to demonstrate the // use of any other access modifier // other than public class techcodeview.com {  private static void main(String[] args)  {  System.out.println('I am a Geek');  } }>


Sortir

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>

2. Statique

C'est un mot-clé c'est-à-dire lorsqu'il est associé à une méthode, ce qui en fait un méthode liée à la classe . Le principal() La méthode est statique afin que JVM puisse l'invoquer sans instancier la classe . Cela évite également le gaspillage inutile de mémoire qui aurait été utilisée par l'objet déclaré uniquement pour appeler le principal() méthode par la JVM.

Si vous essayez d'exécuter du code Java où main n'est pas statique, vous obtiendrez une erreur.

Exemple:

Java
// Java Program to demonstrate the // error occurred when we dont use the // static keyword in the main() method class techcodeview.com {  public void main(String[] args)  {  System.out.println('I am a Geek');  } }>


Sortir

algèbre des ensembles
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>

3. Vide

C'est un mot-clé et est utilisé pour préciser qu'une méthode ne renvoie rien . Comme le principal() la méthode ne renvoie rien, son type de retour est vide . Aussi tôt que le principal() La méthode se termine, le programme Java se termine également. Cela n’a donc aucun sens de revenir du principal() car la JVM ne peut rien faire avec sa valeur de retour.

Si la méthode principale n’est pas nulle, nous obtiendrons une erreur.

Exemple:

Java
// Java Program to demonstrate the // error occurred when we dont use the // void return type in the main() method class techcodeview.com {  public static int main(String[] args)  {  System.out.println('I am a Geek');  return 1;  } }>


Sortir

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)>

4. principal

C'est le nom de la méthode principale Java . C'est le identifiant que la JVM recherche comme point de départ du programme Java . Ce n'est pas un mot-clé.

Si nous changeons le nom lors du lancement de la méthode principale, nous obtiendrons une erreur.

Exemple:

Java
// Java Program to demonstrate the // error occurred when we name the // main() method as newmain. class techcodeview.com {  public static void newmain(String[] args)  {  System.out.println('I am a Geek');  } }>


Sortir

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>

5. Arguments String[]

Il stocke la ligne de commande Java arguments et est un tableau de type java.lang.String classe. Ici, le nom du tableau String est arguments mais il n'est pas fixe et l'utilisateur peut utiliser n'importe quel nom à la place.

Exemple: Processus d'exécution de chaîne[]

Java
// Java Program to demonstrate // the working of String[] args // in the main() method class techcodeview.com {  // Commamd-Line Code ->// javac techcodeview.com.java // java techcodeview.com 1 2 3 public static void main(String[] args) { for (String elem : args) System.out.println(elem);  } }>


Sortir

1 2 3>

Outre la signature de main mentionnée ci-dessus, vous pouvez utiliser public static void main (String args[]) ou public static void main (String… arguments) pour appeler la fonction principale en Java. La méthode main est appelée si son paramètre formel correspond à celui d'un tableau de chaînes.

Note: La méthode principale est cumulative en Java

Surcharge de la méthode main() en Java

La surcharge de la méthode main() est possible en Java, ce qui signifie que nous pouvons créer n'importe quel nombre de méthodes main() dans un programme.

Pour surcharger la méthode main() en Java, nous devons créer la méthode main() avec différents paramètres.

avec forme complète

Exemple:

Java
public class Main {  public static void main(String[] args) {  if (args.length == 0) {  System.out.println('Running main() with no arguments');  } else if (args.length == 1) {  try {  int value = Integer.parseInt(args[0]);  main(value);  } catch (NumberFormatException e) {  main(args[0]);  }  } else {  // Handle more arguments as needed  }  }  public static void main(int value) {  System.out.println('Running main() with integer argument: ' + value);  }  public static void main(String message) {  System.out.println('Running main() with string argument: ' + message);  } }>

Sortir:

Running main() with no arguments>

Conclusion

La méthode Java main() est le point de départ d’un programme Java. C'est le corps principal qui est exécuté par la JVM, et sans la méthode main() aucun programme Java ne peut être exécuté sans elle.

Apprendre encore plus: Tutoriel Java

Méthode Java main() - FAQ

La méthode principale peut-elle être int ? Si non, pourquoi ?

Non, la méthode principale Java ne peut pas être un entier. Il y a deux raisons principales à cela :

  1. JVM recherche public static void main (String[] arguments) au démarrage de l'exécution du programme car il s'agit de la signature standard pour la saisie. L'utilisation de la signature int entraînerait des problèmes de confusion et de compatibilité lors de l'exécution du programme.
  2. Avoir une signature vide signifie que la méthode principale ne retournera rien, mais utiliser la signature int signifie que la fonction principale devra renvoyer un entier, ce qui n'est pas utile pour JVM.

Pouvons-nous exécuter un programme Java sans la méthode main ?

Non, de JDK7 La méthode principale est obligatoire. Le compilateur vérifiera d'abord si main() est présent ou non. Si votre programme ne contient pas la méthode principale, vous obtiendrez une erreur de méthode principale introuvable dans la classe.

Pour en savoir plus sur le sujet, reportez-vous à La méthode main est-elle obligatoire en Java ? article.

Pouvons-nous déclarer la méthode main() sans les arguments String[] ?

Oui, nous pouvons déclarer la méthode main() sans les arguments String[]. Bien que cela génère un message d'erreur si nous essayons directement d'exécuter la méthode principale à l'intérieur de la classe du pilote, comme dans l'exemple ci-dessous.

Vous trouverez ci-dessous la méthode correcte pour écrire un programme sans String args[].

Java
import java.io.*; import javafx.application.Application; abstract class GFG  extends javafx.application.Application {  // static block  static  {  System.out.println('Hello, world!');  System.exit(0);  } }>

Sortir

Hello, world!>

Pourquoi le principal est-il vide en Java ?

La méthode main sert de point de départ à l’exécution d’un programme en Java. La JVM n'attend pas de valeur de retour de la part du principal car il n'existe aucun mécanisme lui permettant de recevoir ou de traiter une telle valeur.

trier une liste de tableaux java