Uma ajuda na compilação que esta dando erro

12 respostas
F
Estou tentando compilar esse programa mas está dando erro:

class ParametroLinhaComando

{

public static void main(String [] args)

{

System.out.println("Meu nome é: " + args[0] + e tenho + args[1] + anos.);

System.out.println("Tamanho do segundo parametro: " + args[1].length() + "Número de parametros: " + args.length);

}

}

Na hora de compilar pelo cmd acontece o seguinte erro
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0 at ParametroLinhaComando.main(ParametroLinhaComando.java:5)

Obrigado!

12 Respostas

B

Esse erro não é na hora de compilar, é durante a execução.

Você não está passando no mínimo dois argumentos na chamada do programa.

D

É que da forma que você está fazendo, você tenque passar os parâmetros no momento que você vai executar. tipo:
java ParametroLinhaComando parametro1 parametro2
seria isso na própria linha de comando.

F

Ok e como faço isso corretamente por favor

Valder_Olmo_Correa

Tente assim:

java ParametroLinhaComando Felp10 18

Assim você estará passando como parâmetros seu nome (Felp10) e sua idade (18)

Passar parâmetros pelo prompt de comando é uma desgraça, aprenda a usar a classe Scanner ou o JOptionPane para a entrada de dados.
Se não resolver, tente aí novamente.

F

Valder Olmo Corrêa:
Tente assim:

java ParametroLinhaComando Felp10 18

Assim você estará passando como parâmetros seu nome (Felp10) e sua idade (18)

Passar parâmetros pelo prompt de comando é uma desgraça, aprenda a usar a classe Scanner ou o JOptionPane para a entrada de dados.
Se não resolver, tente aí novamente.


É que estou começando a programar em java por apostilas que arrumei e tenho um pouco de noção de lógica então sigo como está na apostila se puder só me mostrar como faço ou com a classe Scanner ou o JOptionPane só até eu associar um com outro eu agradeço ou dica onde posso utilizar de apostilas.
Obrigado

F
O exercício que estou fazendo é esse a seguir para usar parametro na verdade não entendi muito bem como funciona alguém pode me explicar melhor?

2.7 - Passagem de Parâmetros na Linha de Comando

Aplicações Java permitem que se passe parâmetros através da linha de comando. Os

parâmetros são separados por espaços em branco. Para passar um parâmetro que contém

ele próprio espaços em branco deve-se colocá-lo entre aspas duplas.

Os parâmetros são passados para as aplicações através do vetor de strings do método

main. Através do método length pode-se verificar o número de parâmetros passados. O

acesso é feito indicando-se a posição no array, sempre iniciando em 0.

Exemplo 2 :

class ParametroLinhaComando

{

public static void main( String [] args )

{

System.out.println(?Meu nome é : ? + args[0] + ?e tenho ? + args[1] + "

anos." );

System.out.println("Tamanho do segundo parametro : " + args[1].length() +

" Número de parametros : " + args.length);

}

}

A seguinte chamada a este programa

prompt> java ParametroLinhaComando Maria 18

gerará a seguinte saída :

prompt> Meu nome é Maria e tenho 18 anos. Tamanho do segundo

parametro : 2 Número de parametros : 2

Obrigado!

D

Rapaz, o que ele quer dizer é que esses parâmetros você deve colocar na própria linha de comando como já foi falado.
Para entender melhor faça assim:
1-> Salve o seu código como ParametroLinhaComando.java faça isso pelo notepad mesmo

2-> Agora clique em Iniciar->Executar e digite CMD e dê OK

3-> Vai abrir o prompt de comando, agora por ele navegue até a pasta que salvou o código anteriormente

3-> Agora para compilar você deve digitar assim: javac ParametroLinhaComando.java se ele não acusar nenhum erro, está tudo OK, continue os passos

4-> Com o programa compilado, para executar ele, e já passar os parâmetros você deve digitar na linha de comando assim: java ParametroLinhaComando Maria 18

5-> A saída deve ser a desejada.

Viu dessa forma é que você passa os parâmetros por linhade comando :smiley:

B

Faça o favor de checar com

if (args.length >= 2)antes de usar um código que depende do número de parâmetros passados.

F

Ok, agora deu certo só não compreendi direito como usar os parametros e onde.

Valder_Olmo_Correa

Olá, felp

Bem, veja esse código aí que fiz para exemplificar o uso da classe Scanner. Ele usa o seu código, retorna o nome, a idade e o tamanho do nome, que é o primeiro parâmetro.
Note que para usar a classe Scanner você deve importá-la antes, veja a linha 4.

package scanner;

// Importa a classe Scanner
import java.util.Scanner;


public class ExemploScanner
{

	public static void main(String[] args)
	{
		String nome;
		int idade;
		// Cria objeto da classe Scanner para a entrada de dados.
		Scanner entrada = new Scanner(System.in);
		
		// Pede para que seja informado o nome
		System.out.println("Informe seu nome :");
		//utiliza o objeto entrada da classe Scanner para que seja informado o nome:
		nome = entrada.nextLine();
		
	    // Pede para que seja informada a idade
		System.out.println("Informe sua idade :");
		// Utiliza o objeto enrada da classe Scanner para que seja informada a idade:
		idade = entrada.nextInt();
		
		
		System.out.println("Meu nome é :" + nome +" e tenho " + idade + " anos." ); 
		System.out.println("Tamanho do primeiro parametro : " + nome.length());
	}
}
B

Se você estiver usando uma IDE, os parâmetros normalmente ficam dentro das propriedades do projeto.

Valder_Olmo_Correa

Agora lhe passo o mesmo exemplo utilizando a classe JOptionPane.
Note que esta classe também deve ser importada, repare a linha 4.

Note também que JOptionPane apenas lê Strings, por isso quando quisermos informar um valor numérico, int, por exemplo, devemos fazer a entrada de dados com o JOptionPane e depois converter esse valor para inteiro. Note as linhas 22 e 25. Na linha 22 informo a idade e a acumulo na variável ide. na linha 25 converto esse valor para inteiro, pois ide é do tipo String.

Veja o código:

package jOptionPane;

// Importa a classe Scanner
import javax.swing.JOptionPane;


public class ExemploJOptionPane
{

	public static void main(String[] args)
	{
		String nome;
		String ide;
		int idade;
		

		// Pede para que seja informado o nome
		nome = JOptionPane.showInputDialog(null, "Informe seu nome:");

        // Pede para que seja informada a idade:
		
		ide = JOptionPane.showInputDialog(null, "Informe sua idade:");
		
		// converte ide do tipo String para inteiro no tipo idade.
		idade = Integer.parseInt(ide);
		
		JOptionPane.showMessageDialog(null, "Meu nome é " + nome + " E minha idade é " + idade + " anos");
	}
}

Outra coisa importante aqui no GUJ, para postar seu código use as tagas code. É assim, anes de postar seu código tecle na tag code na barra de ferramentas. Copie seu código e cole-o logo após a taga code aberta. Tecle novamente na tag code para fechá-la.
Depois disso é só postar o código.

Qualquer dúvida, poste aí.

Até.

Criado 18 de outubro de 2008
Ultima resposta 18 de out. de 2008
Respostas 12
Participantes 4