[Resolvido]Argumento de linha de comando

Olá pessoal.

Estou seguindo uma apostila do projeto JEDI, e ele entrou em Argumentos de Linha de comando.

Mas não estou entendendo como funciona, tme um trecho que diz assim.

[quote]Argumentos de linha de comando permitem ao usuário modificar a operação de uma
aplicação a partir de sua execução. O usuário insere os argumentos na linha de comando no
momento da execução da aplicação. Deve-se lembrar que os argumentos de linha de comando
são especificados depois do nome da classe a ser executada.[/quote]

Só que não entendi, como funciona, pois eu usei um argumento de linha de comando, digitado pro mim e não pelo usuario.

Se algum puder explicar, ou passa um exemplo, agradeço.

[EDIT]
Ele da esse exemplo.

public class CommandLineExample { public static void main( String[] args ) { System.out.println("Number of arguments=" + args.length); System.out.println("First Argument="+ args[0]); } }

E eu passo os argumentos no netbeans, em uma configuração, mas ele passa depois o seguinte exercicio.

Argumentos de Exibição

Utilizando os dados passados pelo usuário através dos argumentos de linha de comando, exiba
os argumentos recebidos. Por exemplo, se o usuário digitar:

java Hello world that is all

o programa deverá mostrar na tela:
world
that
is
all

Como se recebe um argumento digitado pelo usuário?

Quando você executa um programa Java, você usa o seguinte comando, não é mesmo?

Os termos que você digitar depois disso são argumentos de linha de comando.

Esses argumentos serão armazenados no array de Strings que nós declaramos no método main.
A linha de cima, se for executada com o código abaixo:

public class Classe { public static void main(String args[]) { for (String arg: args) { System.out.println(arg); } } }
Produz o seguinte resultado:

[quote]arg1
arg2
arg3[/quote]

[quote=tnaires]Quando você executa um programa Java, você usa o seguinte comando, não é mesmo?

Os termos que você digitar depois disso são argumentos de linha de comando.

Esses argumentos serão armazenados no array de Strings que nós declaramos no método main.
A linha de cima, se for executada com o código abaixo:

public class Classe { public static void main(String args[]) { for (String arg: args) { System.out.println(arg); } } }
Produz o seguinte resultado:

[quote]arg1
arg2
arg3[/quote][/quote]

Hmm, então esse java Classe, é a ordem de execução, executa o Java, le a classe, e depois os argumentos de linah de comando.

Mais, no caso, aquele exercicio, ele pede para o usuario digitar, uma argumento de linha de comando, como eu recebeo esse argumento?

Com um JOptionPane?

Grato, Lucas

Não. Você simplesmente vai digitar os argumentos depois do nome da classe, separados por espaços. Esses argumentos serão armazenados automaticamente no array args, declarado como parâmetro do método main, conforme o exemplo que citei acima.

EDIT - lembrando que isso tem que ser feito no terminal, no prompt do DOS. Se for usando uma IDE como o Netbeans, você tem que ver como se faz no Netbeans para passar argumentos para a linha de comando.

O “usuário”, nesse caso, é o cara que roda o programa (que nesse caso calhou de também ser você).
Não precisa usar um JOptionPane.

Não. Você simplesmente vai digitar os argumentos depois do nome da classe, separados por espaços. Esses argumentos serão armazenados automaticamente no array args, declarado como parâmetro do método main, conforme o exemplo que citei acima.

EDIT - lembrando que isso tem que ser feito no terminal, no prompt do DOS. Se for usando uma IDE como o Netbeans, você tem que ver como se faz no Netbeans para passar argumentos para a linha de comando.[/quote]

Hmm, por isso que estranhei, estou usando o Eclipse, e para passar os argumentos de linha de comando, você vai nessa tela.

Mas na hora de execução, não terá como o usuario ir ai, como eu faria então?

Grato, Lucas.

Aí caímos no que o colega entanglement afirmou: o usuário tem que executar o programa via linha de comando pra poder passar esses argumentos. Se ele não for capaz de fazer isso, aí você pode sim usar um JOptionPane ou alguma outra interface.

Aí caímos no que o colega entanglement afirmou: o usuário tem que executar o programa via linha de comando pra poder passar esses argumentos. Se ele não for capaz de fazer isso, aí você pode sim usar um JOptionPane ou alguma outra interface.[/quote]

Eu executei pelo DOS, fiz um pouquinho diferente e deu certo.

Mais, por exemplo, se eu quizesse exibir uma mensagem para o usuario, digitar 5 valores (que serão os argumento), tem como fazer, pois pelo que vi, os argumentos são logo após a leitura da classe.

Grato, Lucas

EDIT:

Hmm, pensando aqui, na verdade, se estivesse uma mensagem, não seria bem argumento de linha de comando…
Mais a maior finalidade dos argumentos de linha de comando é qual?
Não entendi a finalidade :frowning:

Grato, Lucas.

Os argumentos de linhas de comando existem para serem usados por programas que executam… na linha de comando.

O programa “java” é um deles. Se você digitar “java -help” na linha de comando, você verifica quais argumentos podem ser utilizados. O próprio termo “-help” é um desses argumentos.

[quote=tnaires]Os argumentos de linhas de comando existem para serem usados por programas que executam… na linha de comando.

O programa “java” é um deles. Se você digitar “java -help” na linha de comando, você verifica quais argumentos podem ser utilizados. O próprio termo “-help” é um desses argumentos.[/quote]

Hmm, então por exemplo, meu instalador, chama o instalador do MySQL por um argumento de linha de comando, é mais ou menos isso?

Valeu :smiley:

É isso mesmo. Nunca se esqueça que programas podem ser usados interativamente (ou seja, por aquela pecinha de hardware biológico que interage com o teclado e o mouse, também conhecida por “usuário”) ou então por outros programas.

Hmm, valeu então pessoal, obrigado pelas explicações.

Entenda as definições:
Quando falo em linha de comando, me refiro a um prompt onde é possível executar programas digitando seus nomes.
Exemplos: prompt do DOS, terminal do Linux.

Argumentos de linha de comando de um programa são todos os termos que você informa depois do nome do programa.

Exemplos:

java Classe

  • programa: java
  • argumentos: Classe

format c:

  • programa: format
  • argumentos: c: