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 String
s. 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
affiche chacun de ses arguments de ligne de commande sur une ligne à part :Echo
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 Drink
Hot
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 Drink
Hot
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 Number
Integer
Float
Double
, et ainsi de suite ont parseXXX
des méthodes qui convertissent un String
représentant un nombre en un objet de leur type.