Argumentos de linha de comando em java
Era uma vez, a maioria dos programadores Java utilizada uma interface de desenvolvimento baseado em texto. Eles digitou um comando em uma janela de aparência simples, geralmente com texto branco em um fundo preto.
Conteúdo
A janela de aparência simples passa os vários nomes, dependendo do tipo de sistema operacional que você usa. No Windows, uma janela de texto deste tipo é um janela Prompt de Comando. Em um Macintosh e Linux, esta janela é a terminal. Algumas versões do Linux e UNIX chamar esta janela uma Concha.
Enfim, de volta nos tempos antigos, você poderia escrever um programa que sugado informação extra quando você digitou o comando para iniciar o programa.
Video: Hello World com Java na Linha de Comando
Na imagem acima, os tipos programador java MakeRandomNumsFile para executar o MakeRandomNumsFile
programa. Mas o programador segue java MakeRandomNumsFile com duas peças extra de informações: MyNumberedFile.txt e 5. Quando o MakeRandomNumsFile
programa é executado, o programa aspira duas peças extra de informações e as utiliza para fazer o que o programa tem de fazer. O programa suga MyNumberedFile.txt 5
, mas em outra ocasião, o programador pode digitar SomeStuff 28 ou BunchONumbers 2000. A informação extra pode ser diferente a cada vez que você executar o programa.
A próxima pergunta é: “Como é que um programa Java sabem que é suposto snarf-se informação extra cada vez que ele é executado?” Desde que você começou a trabalhar com Java em primeiro lugar, você tem de ver este args string []
negócios no cabeçalho de cada a Principal
método. Bem, é hora de você descobrir o que é isso tudo. o parâmetro args []
é uma matriz de Corda
valores. Estes Corda
valores são chamados argumentos de linha de comando.
Alguns programadores escrever
principais (args public static void corda[])
e outros programadores escrever
public static void main (String[] args)
De qualquer jeito, args
é uma matriz de Corda
valores.
Usando argumentos de linha de comando em um programa Java
Este trecho de código mostra como usar argumentos de linha de comando.
Isto é como você gerar um arquivo de números
importação java.util.Random-
importação java.io.PrintStream-
importação java.io.IOException-
classe pública MakeRandomNumsFile {
principal public static void (args string []) Lança IOException {
gerador aleatório = new Random () -
if (args.length lt; 2) {
System.out.println ("Uso: número filename MakeRandomNumsFile") -
System.exit (1) -
}
PrintStream impressão = new PrintStream (args [0]) -
int numLines = Integer.parseInt (args [1]) -
Video: Programação na Linguagem C - Aula 03 Argumentos de Linha de Comandos
para (int count = 1- contagem lt; = numLines- contar ++) {
printOut.println (generator.nextInt (10) + 1) -
}
printOut.close () -
}
}
Se um determinado programa espera alguns argumentos de linha de comando, você não pode iniciar o programa em execução da mesma maneira que você iria começar a maioria dos outros programas normais. A maneira como você alimentar os argumentos de linha de comando para um programa depende do IDE que você está usando - Eclipse, NetBeans, ou o que quer. Allmycode.com tem instruções para alimentação argumentos para programas usando vários IDEs.
Quando o código começa a ser executado, o args
matriz recebe os seus valores. Com o funcionamento mostrado na imagem acima, o componente de matriz args [0]
automaticamente assume o valor "MyNumberedFile.txt"
, e args [1]
torna-se automaticamente "5"
. Então instruções de atribuição do programa acabam por ter o seguinte significado:
PrintStream impressão = new PrintStream ("MyNumberedFile.txt") -
int numLines = Integer.parseInt ("5") -
O programa cria um arquivo chamado MyNumberedFile.txt
e conjuntos numLines
para 5
. Então, mais tarde no código, o programa gera aleatoriamente cinco valores e coloca esses valores em MyNumberedFile.txt
. Uma corrida do programa dá-lhe isso.
Depois de executar o código, onde pode encontrar o novo arquivo (MyNumberedFile.txt
) Em seu disco rígido? A resposta depende de um monte de coisas diferentes. Se você usar um IDE com programas divididos em projetos, em seguida, o novo arquivo está em algum lugar na pasta do projeto. Uma forma ou outra, você pode alterar Listing 11-7 para especificar um nome de caminho completo - um nome como "c: Usuários MYNAME Documents MyNumberedFile.txt"
ou "/Users/MyName/Documents/MyNumberedFile.txt"
.
No Windows, nomes de caminho de arquivos contêm caracteres de barra invertida. E em Java, quando você quiser indicar uma barra invertida dentro de uma string entre aspas literal, você usa uma barra invertida dupla vez. É por isso que “c: Usuários MYNAME Documents MyNumberedFile.txt” contém pares de barras invertidas. Em contraste, caminhos de arquivo nos sistemas operacionais Linux e Macintosh contêm barras invertidas. Para indicar uma barra em uma String Java, use apenas uma barra.
Observe como cada argumento de linha de comando é um Corda
valor. Quando você olha para args [1]
, você não vê o número 5 - você vê a string "5"
com um caractere de dígito na mesma. Infelizmente, você não pode usar esse "5"
para fazer qualquer contagem. Para se ter uma int
valor de "5"
, você tem que aplicar o parseInt
método.
o parseInt
método vive dentro de uma classe chamada Integer. Assim, para chamar parseInt
, você prefaciar o nome parseInt com a palavra Integer. o número inteiro
classe tem todos os tipos de métodos úteis para fazer as coisas com int
valores.
Em Java, Integer é o nome de uma classe, e int é o nome de um tipo primitivo (simples). As duas coisas estão relacionadas, mas não são o mesmo. o número inteiro
classe tem métodos e outras ferramentas para lidar com
int
valores.
Verificando o número certo de argumentos de linha de comando
O que acontece se o usuário comete um erro? E se o usuário esquecer de digitar o número 5 na primeira linha When você iniciar MakeRandomNumsFile
?
Em seguida, os cessionários de computador "MyNumberedFile.txt"
para args [0]
, mas não atribui qualquer coisa para args [1]
. Isto é mau. Se o computador já atinge a declaração
int numLines = Integer.parseInt (args [1]) -
o programa trava com um hostil Índice de matriz fora dos limites de exceção
.
O que você faz sobre isso? Você verifica o comprimento do args
matriz. você comparar args.length
com 2
. Se o matriz args
tem menos de dois componentes, você exibir uma mensagem na tela e sair do programa.
Apesar da verificação de args.length
, o código ainda não é à prova de choque. Se o usuário digitar cinco em vez de 5, o programa leva uma queda livre com uma NumberFormatException
. O segundo argumento de linha de comando não pode ser uma palavra. O argumento tem de ser um número (e um número inteiro, em que). Você pode adicionar instruções para tornar o código mais à prova de balas.
Quando você está trabalhando com argumentos de linha de comando, você pode inserir um Corda
valor com um espaço em branco na mesma. Apenas colocar o valor entre aspas duplas. Por exemplo, você pode executar o código acima com argumentos "My Big Fat File.txt" 7
.