Partage
  • Partager sur Facebook
  • Partager sur Twitter

« public static void main » : une ou plusieurs ?

Java pour débutants

    20 février 2022 à 15:59:21

    Bonsoir à tous !

    Suis débutant en Java et j’ai compris en suivant des tutos que la fonction « main » est indispensable pour qu’un programme soit valide en java. Et que chaque classe également doit être  créée dans un fichier à part. 
    Alors ma question est que si j’ai plusieurs classes sur plusieurs fichiers différents (interactions entre les classes prévue), la fonction « public static void main » doit-elle être présente dans chaque classe de chaque fichier ou bien elle doit être déclarée une seule fois (auquel cas à quel niveau ? ).

    Merci !!!

    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2022 à 22:13:50

      Bonjour,

      Une classe fournit des fonctionnalités (on dit aussi des services) grâce à ses méthodes.

      Une classe avec une méthode main, c'est un programme qu'on peut exécuter.

      Dans pas mal de cours/tutos, on trouve la méthode main dans une classe qui fournit aussi des services. Il n'y a pas de raison particulière pour cela.

      Tu as donc le choix de mettre la méthode main dans une classe existante ou dans une classe dédiée.

      A priori, pour un projet simple, tu auras une seule méthode main,

      • Partager sur Facebook
      • Partager sur Twitter
        21 février 2022 à 13:08:50

        Réponse rapide : un "exécutable" Java est livré généralement sous forme d'une archive (jar par exemple) qui regroupe le code compilé de différentes classes, des ressources etc.

        Le "runtime" charge l'archive, et  lance l'exécution d'une méthode publique statique main (avec la signature que vous connaissez) qui est le point d'entrée.

        Il doit donc y en avoir au moins une classe contenant une méthode main.

        Il peut y en avoir plusieurs. Dans ce cas

        • soit on a précisé, pour l'exécution, la classe qui contient le point d'entrée
        • soit le nom de la classe est indiqué dans le fichier Manifest.mf  (Manifest = bon de livraison)
        A quoi ça sert d'en avoir plusieurs ? Et bien, par exemple, parce que le point d'entrée "par défaut" lance une application, et qu'il est aussi possible, par un autre point d'entrée, de lancer des tests de vérification de bon fonctionnement. Ou parce qu'on fournit une bibilothèque qui regroupe plusieurs applications qui ont beaucoup de code en commun.
        Quelque fois, quand on utilise un framework on n'écrit pas de Main. Le main se trouve dans une des classes de bibliothèque, qui se débrouille, par introspection, à trouver ce qu'il faut lancer.
        • Partager sur Facebook
        • Partager sur Twitter

        « public static void main » : une ou plusieurs ?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown