Gli argomenti della riga di comando

Un’applicazione Java può accettare qualsiasi numero di argomenti dalla riga di comando. Questo permette all’utente di specificare informazioni di configurazione quando l’applicazione viene lanciata.

L’utente inserisce gli argomenti della linea di comando quando invoca l’applicazione e li specifica dopo il nome della classe da eseguire. Per esempio, supponiamo che un’applicazione Java chiamata Sort ordini le righe di un file. Per ordinare i dati in un file chiamato friends.txt, un utente dovrebbe inserire:

java Sort friends.txt

Quando un’applicazione viene lanciata, il sistema di runtime passa gli argomenti della riga di comando al metodo principale dell’applicazione tramite un array di Strings. Nell’esempio precedente, gli argomenti della riga di comando sono passati all’applicazione Sort in un array che contiene un singolo String"friends.txt".

Echoing Command-Line Arguments

L’esempio Echo visualizza ciascuno dei suoi argomenti della linea di comando su una riga a sé:

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

L’esempio seguente mostra come un utente potrebbe eseguire Echo. L’input dell’utente è in corsivo.

java Echo Drink Hot JavaDrinkHotJava

Nota che l’applicazione visualizza ogni parola DrinkHot, e Java su una linea da sola. Questo perché il carattere spazio separa gli argomenti della linea di comando. Per far sì che DrinkHot, e Java vengano interpretati come un unico argomento, l’utente dovrebbe unirli racchiudendoli tra virgolette.

java Echo "Drink Hot Java"Drink Hot Java

Parlare di argomenti numerici da riga di comando

Se un’applicazione ha bisogno di supportare un argomento numerico da riga di comando, deve convertire un String argomento che rappresenta un numero, come “34”, in un valore numerico. Ecco uno snippet di codice che converte un argomento della riga di comando in 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 lancia un NumberFormatException se il formato di args non è valido. Tutte le classi NumberIntegerFloatDouble, e così via hanno metodi parseXXX che convertono un String che rappresenta un numero in un oggetto del loro tipo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *