Intéressant

Utilisation d'arguments de ligne de commande dans une application Java

Utilisation d'arguments de ligne de commande dans une application Java

Les arguments de ligne de commande peuvent être un moyen de spécifier les propriétés de configuration d'une application, et Java n'est pas différent. Au lieu de cliquer sur une icône d'application depuis le système d'exploitation, vous pouvez exécuter l'application Java à partir d'une fenêtre de terminal. Outre le nom de l'application, un certain nombre d'arguments peuvent suivre, qui sont ensuite transmis au point de départ de l'application (c'est-à-dire, la méthode principale, dans le cas de Java).

Par exemple, NetBeans dispose d’un certain nombre de paramètres de démarrage qui peuvent être transmis à l’application lorsqu’elle est exécutée à partir d’une fenêtre de terminal (par exemple,

spécifie une version du JDK à utiliser à la place du JDK par défaut associé à l'application NetBeans).

La méthode principale

Examinons la méthode principale pour voir où les arguments passés à une application apparaissent:

Les arguments de ligne de commande peuvent être trouvés dans

appelé

Par exemple, considérons une application appelée

dont la seule action consiste à afficher les arguments de ligne de commande qui lui ont été transmis:

Classe publique CommandLineArgs {

public static void main (String args) {
// vérifie si le tableau String est vide
if (args.length == 0)
{
System.out.println ("Aucun argument en ligne de commande n'a été passé!");
}

// Pour chaque chaîne du tableau de chaînes
// affiche la chaîne.
for (argument de chaîne: args)
{
System.out.println (argument);
}
}

Syntaxe des arguments de ligne de commande

Le moteur d'exécution Java (JRE) s'attend à ce que les arguments soient transmis selon une syntaxe particulière, comme suit:

java ProgramName valeur1 valeur2

En haut, "java" appelle le JRE, qui est suivi du nom du programme que vous appelez. Ceux-ci sont suivis de tous les arguments du programme. Il n'y a pas de limite au nombre d'arguments qu'un programme peut prendre, mais l'ordre est critique. JRE transmet les arguments dans l'ordre dans lequel ils apparaissent sur la ligne de commande. Par exemple, considérons l'extrait de code ci-dessus:

Classe publique CommandLineArgs2 {

public static void main (String args) {
if (args.length == 0)
{
System.out.println ("Aucun argument en ligne de commande n'a été passé!");
}

Lorsque les arguments sont transmis à un programme Java, args0 est le premier élément du tableau (valeur 1 ci-dessus), args1 est le deuxième élément (valeur 2), etc. Le code args.length () définit la longueur du tableau.

Passage d'arguments de ligne de commande

Dans NetBeans, nous pouvons passer des arguments de ligne de commande sans avoir à construire l'application et à l'exécuter à partir d'une fenêtre de terminal. Pour spécifier les arguments de ligne de commande:

  1. Cliquez avec le bouton droit sur le dossier du projet dans

    Projetsfenêtre.

  2. Choisir la

    Propriétésoption pour ouvrir

    Propriétés du projetfenêtre.

  3. dans le

    Les catégoriesliste sur le côté droit, choisissez

    Courir

  4. dans le

    ArgumentsDans la zone de texte qui apparaît, spécifiez les arguments de ligne de commande que vous souhaitez transmettre à l’application. Par exemple, si on entre

    Pomme carotte bananedans le

    Argumentszone de texte et exécutez le

    CommandLineArgsprogramme énuméré ci-dessus, nous allons obtenir la sortie:

Analyser les arguments de la ligne de commande

En règle générale, un argument de ligne de commande est transmis avec des informations sur l'utilisation de la valeur transmise. L'argument indiquant à l'application à quoi sert l'argument comporte généralement un trait d'union ou deux avant son nom. Par exemple, l’exemple NetBeans pour le paramètre de démarrage spécifiant le chemin JDK est

Cela signifie que vous devrez analyser les arguments de la ligne de commande pour savoir quoi faire avec les valeurs. Il existe plusieurs frameworks de ligne de commande Java pour analyser les arguments de ligne de commande. Vous pouvez également écrire un analyseur de ligne de commande simple si les arguments à transmettre ne sont pas nombreux:

Le code ci-dessus affiche les arguments ou les additionne s’ils sont des entiers. Par exemple, cet argument de ligne de commande ajouterait les nombres:

java CommandLineArgs -addnumbers 11 22 33 44