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 du système d'exploitation, vous pouvez exécuter l'application Java à partir d'une fenêtre de terminal. Avec le nom de l'application, un certain nombre d'arguments peuvent suivre qui sont ensuite passés au point de départ de l'application (c'est-à-dire la méthode principale, dans le cas de Java).
Par exemple, NetBeans a 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 au lieu du JDK par défaut associé à l'application NetBeans).
Examinons la méthode principale pour voir où apparaissent les arguments passés à une application:
Les arguments de ligne de commande se trouvent dans le
appelé
Par exemple, considérons une application appelée
dont la seule action est d'imprimer les arguments de ligne de commande qui lui sont passés:
public class CommandLineArgs
public static void main (String [] args)
// vérifie si le tableau String est vide
if (args.length == 0)
System.out.println ("Aucun argument de ligne de commande n'a été transmis!");
// Pour chaque chaîne du tableau de chaînes
// imprime la chaîne.
for (argument de chaîne: args)
System.out.println (argument);
Le moteur d'exécution Java (JRE) s'attend à ce que les arguments soient transmis selon une syntaxe particulière, comme ceci:
java ProgramName valeur1 valeur2
Ci-dessus, "java" invoque le JRE, qui est suivi du nom du programme que vous appelez. Ils 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. Le JRE transmet les arguments dans l'ordre dans lequel ils apparaissent sur la ligne de commande. Par exemple, considérez cet extrait de code ci-dessus:
classe publique CommandLineArgs2
public static void main (String [] args)
if (args.length == 0)
System.out.println ("Aucun argument de ligne de commande n'a été transmis!");
Lorsque des arguments sont transmis à un programme Java, args [0] est le premier élément du tableau (valeur1 ci-dessus), args [1] est le deuxième élément (valeur2), etc. Le code args.length () définit la longueur du tableau.
Dans NetBeans, nous pouvons passer des arguments de ligne de commande sans avoir à générer l'application et à l'exécuter à partir d'une fenêtre de terminal. Pour spécifier les arguments de ligne de commande:
Projetsfenêtre.
Propriétéspossibilité d'ouvrir
Propriétés du projetfenêtre.
Les catégoriesliste à droite, choisissez
Courir
Argumentszone de texte qui s'affiche, spécifiez les arguments de ligne de commande que vous souhaitez transmettre à l'application. Par exemple, si nous entrons
Apple Banana Carrotdans le
Argumentszone de texte et exécutez la
CommandLineArgsprogramme ci-dessus, nous obtiendrons la sortie:
En règle générale, un argument de ligne de commande est transmis avec des informations sur ce qu'il faut faire avec la valeur transmise. L'argument informant l'application à quoi sert l'argument comporte généralement un tiret 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 ligne de commande pour savoir quoi faire avec les valeurs. Il existe plusieurs frameworks de ligne de commande Java pour l'analyse des arguments de ligne de commande. Ou vous pouvez écrire un simple analyseur de ligne de commande si les arguments que vous devez passer ne sont pas si nombreux:
Le code ci-dessus imprime 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