Arguments de ligne de commande

Une application Java peut accepter un nombre quelconque d’arguments de la ligne de commande. Cela permet à l’utilisateur de spécifier des informations de configuration lors du lancement de l’application.

L’utilisateur saisit les arguments de la ligne de commande lorsqu’il invoque l’application et les spécifie après le nom de la classe à exécuter. Par exemple, supposons qu’une application Java appelée Sort trie les lignes d’un fichier. Pour trier les données d’un fichier nommé friends.txt, un utilisateur doit saisir :

java Sort friends.txt

Lorsqu’une application est lancée, le système d’exécution transmet les arguments de la ligne de commande à la méthode principale de l’application via un tableau de Strings. Dans l’exemple précédent, les arguments de ligne de commande transmis à l’application Sort dans un tableau qui contient une seule String"friends.txt".

Écho des arguments de ligne de commande

L’exemple Echo affiche chacun de ses arguments de ligne de commande sur une ligne à part :

public class Echo { public static void main (String args) { for (String s: args) { System.out.println(s); } }}

L’exemple suivant montre comment un utilisateur pourrait exécuter Echo. La saisie de l’utilisateur est en italique.

java Echo Drink Hot JavaDrinkHotJava

Notez que l’application affiche chaque mot DrinkHot et Java sur une ligne à part. Cela s’explique par le fait que le caractère espace sépare les arguments de la ligne de commande. Pour que DrinkHot et Java soient interprétés comme un seul argument, l’utilisateur doit les joindre en les mettant entre guillemets.

java Echo "Drink Hot Java"Drink Hot Java

Parsing Numeric Command-Line Arguments

Si une application doit prendre en charge un argument de ligne de commande numérique, elle doit convertir un String argument qui représente un nombre, tel que « 34 », en une valeur numérique. Voici un extrait de code qui convertit un argument de ligne de commande en un int :

int firstArg;if (args.length > 0) { try { firstArg = Integer.parseInt(args); } catch (NumberFormatException e) { System.err.println("Argument" + args + " must be an integer."); System.exit(1); }}

parseInt jette un NumberFormatException si le format de args n’est pas valide. Toutes les classes NumberIntegerFloatDouble, et ainsi de suite ont parseXXX des méthodes qui convertissent un String représentant un nombre en un objet de leur type.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *