Erro na compilação

Estou obtendo o seguinte problema na hora de compilar meu código:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException

public int j; public String NomeJogadorVet[] = new String[j]; public int NumJogadorVet[] = new int[j];

public Servidor() throws RemoteException { NumJogadorVet[0] = 0 ; NomeJogadorVet[0] = ""; }

[code]public void juntar(Notificar n, String name) throws RemoteException {

	for (j=0;j>3;j++)
	// My - Incrementa o contador de jogadores -> NumJogador
	
   	NumJogadorVet[j] = j;
	NomeJogadorVet[j] = name;
	
	serverList.add(n);	// Valor de n :  
	System.out.println ("O Cliente "+ name+ " juntou-se em \nURL : "+n);
	
	serverList.incCounter();
	// Informar aos outros clientes que um novo usuário esta conectado
	
	for (Iterator i = serverList.getCollection().iterator();
			 i.hasNext();) {
		Notificar client = (Notificar)i.next();
		client.JuntarMensagem(name, NumJogadorCont );
		
	}
	
	serverList.decCounter();[/code]

Estes são os trechos do código em que e eu utilizo o vetor. Quando eu altero o tamanho dele para um número, ele compila normalmente, mas quando eu torno a utilizar uma variável ele dá este problema. Alguém poderia me ajudar a entender o que está havendo por favor?

for (j=0;j>3;j++) 

Isso não vai executar nada

Não entendi, pq?

Vou usar um código meu pra explicar melhor:

public void inf(){ int contagem = 0; for(int i = 0; i<10; i++){ contagem++; System.out.println(contagem); } }

O que o meu loop for diz é:

O inteiro “i” é igual a zero. Enquanto “i” for menor que dez, adicione 1 a “contagem” e imprima a contagem. Ao final, adicione 1 a “i”.

No seu código, “j” inicia com valor 0, e enquanto “j” for maior que 3, deve-se executar o código e então adicionar 1 a “j”. Porém, já na primeira vez que o loop deva ser executado, “j” é menor que 3, e o loop não será executado

Ah sim obrigado, viajei ali mesmo, mas mesmo com isso o problema na compilação permanece :\

Pode postar mais do seu código, tipo, completo?

Se não se sentir seguro de postá-lo aqui, me envie por mensagem particular

Also, desculpe-me qualquer demora, minha internet está péssima hoje

[code]import java.rmi.;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.
;
import java.lang.;
import java.util.
;

public class Servidor extends UnicastRemoteObject implements ChatInterface {

private ServerList serverList = new ServerList();
public Random myRandom = new Random();

public int NumJogadorCont = 0;  
public int Num_X ;			
public boolean Acertou = false;
public boolean IniciaJogo = false;
public int j;
public String NomeJogadorVet[] = new String[j];
public int 	  NumJogadorVet[] = new int[j];
private String lado;
private String naipe;
public carta[] carta; 
public int atual; 
public final int quantidade = 52; 
public Random aleatório; 



public Servidor() throws RemoteException {
	NumJogadorVet[0] =  0 ;
	NomeJogadorVet[0] = "";
}


public void NumAleatorio() {
  	// Gerar inteiros de 1 a m (Outra forma)
  	int m = 10;
  	Num_X = myRandom.nextInt(m) + 1; 
  	System.out.println ("O valor de X = "+ Num_X + "\n");
} 

public void MostrarMenuCliente()throws RemoteException {
	
}


public void juntar(Notificar n, String name) throws RemoteException {
	

	for (j=0;j<3;j++)
	// My - Incrementa o contador de jogadores -> NumJogador
	
   	NumJogadorVet[j] = j;
	NomeJogadorVet[j] = name;
	
	serverList.add(n);	// Valor de n :  
	System.out.println ("O Cliente "+ name+ " juntou-se em \nURL : "+n);
	
	serverList.incCounter();
	
	
	for (Iterator i = serverList.getCollection().iterator();
			 i.hasNext();) {
		Notificar client = (Notificar)i.next();
		client.JuntarMensagem(name, NumJogadorCont );
		
	}
	
	serverList.decCounter();
}

public void conversar(String name, String s)
        throws RemoteException {
	serverList.incCounter();
	for (Iterator i = serverList.getCollection().iterator();
			 i.hasNext();) {
		Notificar client = (Notificar)i.next();
		client.EnviarMensagem(name,s);
	}
	serverList.decCounter();
}
public synchronized void deixar(Notificar n, String name) throws RemoteException {
	serverList.remove(n);
	
	serverList.incCounter();
	for (Iterator i = serverList.getCollection().iterator();
			 i.hasNext();) {
		Notificar client = (Notificar)i.next();
		client.SairMensagem(name);
	}
	serverList.decCounter();
	System.out.println ("O Cliente  "+ name+"  Deixou o Chat\n");
	
	// My - Decrementa numetro de Jogadores
	NumJogadorCont --;
}

public static void main(String[] args) {
     	try { 
        LocateRegistry.createRegistry(1099);
        
		Servidor server = new Servidor();
        
		
		Naming.rebind("rmichat", server);
		System.out.println ("Servidor Pronto!");
	}
	catch (java.net.MalformedURLException e) {
		System.out.println("nome da URL mal formado para Servidor de Mesagem "
		    + e.toString());
	}
	catch (RemoteException e) {
		System.out.println("Erro de comunicação" + e.toString());
	}
}

public void baralho () throws RemoteException {
  
       String lado[] = {"Dois", "Tres", "Quatro", "Cinco", "Seis", 
          "Sete", "Oito", "Nove", "Dez", "Valete", "Dama", "Rei", "As" };     
       String naipe[] = { "Espadas", "Coração", "Paus", "Ouro" };      
       carta = new carta[quantidade]; // cria array de objetos Card 
       atual = 0; // índice de carta atual 
       aleatório = new Random(); // cria gerador de número aleatório 
  
       // preenche baralho com objetos Card                         
       for ( int count = 0; count < carta.length; count++ ){         
          carta[ count ] =                                          
             new carta( lado[ count % 13 ], naipe[ count / 13 ] ); 
       }   } 

public carta distribui () throws RemoteException{
// determina se ainda há Cards a ser distribuídos
if ( atual < carta.length )
return carta[ atual++ ];
else
System.out.println(“Não há cartas para serem distribuídas”);
return null;
//aqui implementar a distribuição da carta para jogador
}

public void embaralhar () throws RemoteException{
//aqui implementar embaralhar as cartas dentro do array
}

public void trocar () throws RemoteException{
//aqui implementar a troca de cartas quando o jogador solicitar
}

public void encerrar () throws RemoteException{
//aqui implementar o término da participação do jogador quando solicitar
}
}
[/code]

Esta é a classe principal.

Tudo bem, agradeço desde já pela ajuda!

O erro acontece aqui amigo

public int j;  
public String NomeJogadorVet[] = new String[j];  
public int    NumJogadorVet[] = new int[j];   

você nao inicia a variável j, tente assim para testar se corrigirá o problema:

public int j=10;  
public String NomeJogadorVet[] = new String[j];  
public int    NumJogadorVet[] = new int[j];   

Funcionou, muito obrigado pessoal.