next up previous contents index
suivant: Conversions monter: Classes d'objets précédent: Classes enveloppantes des types   Table des matières   Index


La fonction main et la ligne de commande

Une application est formée d'un ensemble de types, dont au moins une classe contenant une fonction principale, de nom main. L'exécution de l'application commence par cette fonction ; c'est elle qui invoquera éventuellement les autres fonctions. Sa définition minimale est la suivante :

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

La fonction main peut accéder à la ligne de commande passée à l'interprète de commandes pour exécuter l'application. Cette ligne de commande a pour objet de démarrer une Machine Virtuelle Java, de désigner la classe principale et de spécifier la valeur d'un certain nombre de paramètres de l'application. Le dialogue entre l'application et l'utilisateur, au moyen du clavier ou de l'écran, se fait toujours à l'aide de chaînes de caractères. Ces paramètres sont donc représentés par un tableau de chaînes de caractères, conventionnellement appelé args, qui est l'unique paramètre de la fonction main.

Lors de l'invocation de main, les éléments de ce tableau, args[0], ..., args[args.length-1], sont initialisés par les chaînes de caractères (mots séparés par des espaces) figurant sur la ligne de commande après la classe principale3.1. Par exemple, l'application (traditionnellement appelé echo) qui recopie sur la sortie standard les arguments passés sur sa ligne de commande peut être programmée ainsi :

class Echo {
  public static void main(String[] args) {
    for (int i=0; i<args.length; i++) {
      System.out.print(args[i] + " ");
    }
    System.out.println();
  }
}

Après avoir compilé cette classe, l'exécution de la commande

java Echo un deux trois

provoque l'invocation de la fonction main de la classe Echo, et l'initialisation de son paramètre args au tableau {"un", "deux", "trois"}, puis produit sur la sortie standard (l'écran) :

un deux trois



Sous-sections
next up previous contents index
suivant: Conversions monter: Classes d'objets précédent: Classes enveloppantes des types   Table des matières   Index
Rene' LALEMENT 2002-11-07