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.

interface baseada em texto em java
Como maçante!

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.

MakeRandomNumsFile em java
Ao iniciar MakeRandomNumsFile, você digita algumas informações extra.

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.

executando java de código

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.

matriz args em java
O código diz-lhe como executá-lo.

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.


Publicações relacionadas