Argumentos do programa em Java
Passe palavras na linha de comando ao iniciar o programa e leia-as dentro de main. Em Flag.java, mantenha a classe pública Flag e o parâmetro String[] args. Na primeira demo, imprima args[0]. Na segunda, imprima args.length e depois args[0]. Compile com javac Flag.java. Execute java Flag oak para que a primeira palavra depois do nome da classe seja oak. A primeira tela mostra oak. Deixe Generics opcionais para páginas posteriores. Esta lição é sobre palavras de linha de comando em args, não uma conversa com Scanner e não um rótulo de Mini Project.
Leia a primeira palavra depois do nome da classe
Abra Flag.java. Mantenha o nome da classe pública Flag. Apague demos restantes de Mini Project Box com Scanner, impressões de Compiling Build, linhas de Summary Recap e rolagens Random Dice se enterrarem a história dos argumentos. Este programa não deve esperar entrada de teclado com Scanner.
Em Flag.main, mantenha a lista de parâmetros String[] args e imprima a primeira palavra:
System.out.println(args[0]);
Na pasta que contém Flag.java, execute javac Flag.java. Depois java Flag oak — não java Flag.java oak. O nome da classe é Flag. A palavra oak é o primeiro argumento do programa. Ela cai em args[0]. A tela mostra oak.
public class Flag {
public static void main(String[] args) {
System.out.println(args[0]);
}
}
Percorra a execução uma vez. javac grava Flag.class. java Flag oak carrega a classe e preenche args com um elemento: "oak". main inicia. args[0] é "oak". println escreve oak. Nada pede item:. Nada imprime mug 4. Nada imprime ok vindo de Build.
Diga a regra de iniciante olhando o comando: palavras depois do nome da classe viram args. O índice 0 é a primeira palavra. Não invente demos de Generics nesta página. Generics opcionais esperam depois do núcleo. Não digite só java Flag e depois leia args[0] — esse array vazio não tem primeira palavra e a execução pode lançar exceção.
Se ainda vir mug 4 de um arquivo Box restante, mude para Flag.java, compile e execute java Flag oak. Se javac reclamar do nome da classe, mantenha public class Flag alinhado com Flag.java.
Conte as palavras, depois imprima a primeira
Um argumento prova args[0]. Uma segunda demo mostra args.length junto com a primeira palavra. Mantenha a mesma classe pública Flag. Imprima duas linhas:
System.out.println(args.length);
System.out.println(args[0]);
Compile de novo com javac Flag.java. Execute java Flag oak pine. A tela mostra 2, depois oak. O comprimento é 2 porque duas palavras seguem o nome da classe. A primeira palavra continua oak. A segunda pine fica em args[1], mas esta demo não a imprime.
Se executar java Flag oak nesta demo de duas linhas, a tela mostra 1, depois oak. O comprimento segue quantas palavras você digitou depois de Flag.
public class Flag {
public static void main(String[] args) {
System.out.println(args.length);
System.out.println(args[0]);
}
}
Compile com javac Flag.java e execute java Flag oak pine de novo. Percorra a execução uma vez. args.length é 2. args[0] é "oak". As impressões escrevem essas duas linhas. Nada espera Scanner. Nada junta mug e 4.
Mantenha as duas demos como dois formatos de ensino. Primeiro prove que um argumento imprime. Depois prove comprimento mais primeira palavra. Ambos compartilham o mesmo nome de classe e a mesma ideia: palavras depois de java Flag preenchem args.
Se escrever java Flag.java oak, está usando o formato errado de execução para este caminho do curso. Mantenha java Flag mais as palavras. Se esquecer de compilar após editar, um .class antigo pode mostrar impressão velha — compile de novo, mesmo hábito de Compiling.
args não é Scanner e não é Mini Project
Mini Project pedia que você digitasse respostas enquanto o programa esperava. Program Arguments pede que passe palavras ao iniciar. Scanner lê de System.in depois que o processo começa. args já está cheio antes de main rodar. Não misture esses dois estilos de entrada num arquivo iniciante hoje.
oak é só uma palavra de ensino. Não é seed de Random nem linha de mapa Summary. Quando uma demo Box restante ainda espera em item:, esse arquivo está fazendo trabalho de Mini Project. Mude para Flag e passe oak na linha de comando.
Sem pelo menos uma palavra, ler args[0] falha. Com palavras presentes, índices começam em 0. args.length diz quantas palavras foram passadas. Mantenha esses três fatos juntos.
Checkpoint do caminho principal
Você já construiu classes com main, compilou com javac, executou com java, guardou valores, decidiu com if, percorreu laços, chamou métodos, usou objetos e listas, capturou erros, leu arquivos e modelou herança. Mini Project juntou duas respostas digitadas em mug 4. Program Arguments mostra outra forma de alimentar um programa: palavras na linha de lançamento.
Esta página encerra o caminho Java principal deste curso. Páginas opcionais como Generics vêm depois, se quiser. Elas não são obrigatórias para terminar o núcleo. Não trate esta lição de argumentos como lugar para inventar tópicos opcionais.
Mantenha um Flag público. Mantenha String[] args em main. Mantenha o comando de execução como java Flag mais palavras. Tire demos Scanner de Mini Project desta página quando praticar argumentos.
Checagens de pasta antes de fechar o núcleo
Liste a pasta após compilar com sucesso. Você deve ver Flag.java e Flag.class juntos. Edite o fonte, salve, execute javac Flag.java, depois java Flag oak ou java Flag oak pine. .class ausente significa compilar primeiro. Pasta errada significa que o lançador não acha Flag.
Se a tela não mostrar nada, confirme que main ainda imprime. Se a execução lançar porque args está vazio, adicione uma palavra depois do nome da classe. Se duas classes públicas compartilham um arquivo, mantenha só Flag pública.
Não cole prompts Scanner de Box em Flag para «enriquecer» a página. Não recrie impressões ok de Build aqui. O trabalho de ensino são só palavras de linha de comando.
Antes de Generics opcionais
Você pode manter classe pública Flag, ler String[] args em main, imprimir args[0] para java Flag oak, imprimir args.length depois args[0] para java Flag oak pine, compilar com javac Flag.java e executar sem o sufixo .java no nome da classe. O caminho principal termina nesta página. Generics opcionais esperam se continuar depois.
Mantenha as demos Flag para um par claro de argumentos. Mantenha arquivos Mini Project Box fora desta página ao praticar args. Mantenha demos Compiling Build fora desta página ao praticar args. Mantenha trabalho de Generics fora desta página até uma lição opcional. Esses hábitos são o checkpoint antes de sair do núcleo. Quando a execução de uma palavra mostra oak ou a de duas palavras mostra 2 depois oak, Program Arguments fez o trabalho desta lição e o caminho Java principal está completo.
Uma última passagem na pasta: um Flag público, String[] args em main, sem espera de Scanner, sem Random, sem LocalDate, compile e execute com palavras depois do nome da classe. Execute javac Flag.java e java Flag oak mais uma vez. Se a tela ainda mostra oak, a forma Program Arguments está sólida e o curso principal pode marcar completo enquanto páginas opcionais ficam disponíveis depois. Prefira um hábito claro de argumentos por leitura para que cada passagem ensine o mesmo mapa.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo