Uma aplicação Java pode aceitar qualquer número de argumentos da linha de comando. Isto permite ao utilizador especificar informações de configuração quando a aplicação é lançada.
O utilizador introduz argumentos da linha de comando ao invocar a aplicação e especifica-os após o nome da classe a ser executada. Por exemplo, suponha que uma aplicação Java chamada Sort
ordena linhas num ficheiro. Para ordenar os dados num ficheiro chamado friends.txt
, um utilizador entraria:
java Sort friends.txt
Quando uma aplicação é lançada, o sistema de tempo de execução passa os argumentos da linha de comando para o método principal da aplicação através de um array de String
s. No exemplo anterior, os argumentos da linha de comando passaram para a aplicação Sort
num array que contém um único String
"friends.txt"
.
Echoing Command-Line Arguments
The Echo
/code> exemplo mostra cada um dos seus argumentos de linha de comando numa linha por si só:
public class Echo { public static void main (String args) { for (String s: args) { System.out.println(s); } }}
O exemplo seguinte mostra como um utilizador pode correr Echo
. A entrada do utilizador está em itálico.
java Echo Drink Hot JavaDrinkHotJava
Nota que a aplicação exibe cada palavra Drink
Hot
, e Java
numa linha por si só. Isto acontece porque o carácter de espaço separa os argumentos da linha de comando. Para ter Drink
Hot
, e Java
interpretados como um único argumento, o utilizador juntar-se-ia a eles, encerrando-os dentro de aspas.
java Echo "Drink Hot Java"Drink Hot Java
Div> Argumentos da Linha de Comando Numérica de Partilha
Se uma aplicação precisa de suportar um argumento de linha de comando numérico, deve converter um String
argumento que representa um número, tal como “34”, para um valor numérico. Aqui está um trecho de código que converte um argumento de linha de comando para um 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
atira um NumberFormatException
se o formato de args
não for válido. Todos os Number
classes Integer
Float
Double
, e assim por diante têm parseXXX
métodos que convertem um String
representando um número para um objecto do seu tipo.