Java RMI - Ajuda!?

Boa noite galera, tudo bom?

Comecei a estudar JAVA RMI, daí conseguir por meio de tutoriais rodar uma aplicação de Serviço de Mensagens, bem simples.

No entanto, procurei algo com uma implementação mais avançada, neste caso um Jogo da Velha distribuído, e encontrei uma projeto na internet, do Alex, que faz isso. Inclusive bem documentado e etc…

https://code.google.com/p/jogo-da-velha-distribuido-ifrn-cnat/

O problema é que por ser um código com um nível de complexidade bem maior, não tá dando certo gerar pelo prompt o javac para gerar arquivos .class e depois fazer o rmic…

Queria saber se eu consigo rodar esse projeto apenas pelo prompt como fiz no Serviço de Mensagens e deu certo, ou teria alguma forma de fazer isso direto pelo Eclipse e/ou NetBeans. Se sim, alguém que também curte o assunto poderia me ajudar?

Obrigado pela atenção…

Leo, posta pra gente o erro que você está tomando ao tentar gerar as classes e os stubs.

Paulo, se for pelo Eclipse, que é a IDE onde foi feito esse projeto segundo a documentação, aparece esse erro no Console…

Parece que o erro é a forma que voce esta executando. É mesmo um applet o aplicativo?

Acho que é isso mesmo, serve só pra Desktop.

Quando eu vou executar direto no Cliente, aparece a seguinte frase:

Eu fui pesquisar sobre ela, dai vi ensinando que deveria dá um nome ao Applet, por exemplo: MyApplet… indo lá em Run > Run Conf…> Applet > MyApplet.

Porém, sem sucesso.

posta o link da classe cliente. da para voce navegar e achar via code.google que voce linkou aqui: https://code.google.com/p/jogo-da-velha-distribuido-ifrn-cnat/

package jogodavelha.rmi;

import java.rmi.Naming;
import java.util.Scanner;

/**

  • Cliente simples de linha de comando. Tem como principal objetivo a realização de testes.

*/
public class Cliente {

/**

  • @param args
    */
    public static void main(String[] args) {
    Jogo jogo = null;
    int idSessao = -1;
    int idJogador = -1;
    Scanner scan = new Scanner(System.in);
    try{
    jogo = (Jogo)Naming.lookup(“rmi://127.0.0.1/jogo”); //busca um objeto Jogo no servidor RMI
    //início de partida
    System.out.println("Iniciar partida (1) ou entrar em uma partida (outro número)? ");
    int opcao = scan.nextInt();
    if(opcao != 1){
    System.out.println("Informe o id da sessão: ");
    idSessao = scan.nextInt();
    idJogador = jogo.entrarNaPartida(idSessao);
    printJogo(jogo.getTabuleiro(idSessao));
    }
    else{
    int[] ids = jogo.criarPartida();
    idSessao = ids[0];
    idJogador = ids[1];
    System.out.println("Sessão criada com o id " + idSessao);
    System.out.println(“Aguarde entrada do outro jogador”);
    jogo.aguardarResposta(idSessao, idJogador);
    }
    //turnos
    int vencedor = 0;
    do{
    System.out.println(“Aguarde”);
    jogo.aguardarResposta(idSessao, idJogador);
    vencedor = jogo.getJogadorVencedor(idSessao);
    printJogo(jogo.getTabuleiro(idSessao));
    if(vencedor == 0){ //partida não acabou
    boolean jogadaValida = false;
    do{
    System.out.println("Sua jogada (linha coluna): ");
    int i = scan.nextInt();
    int j = scan.nextInt();
    jogadaValida = jogo.marcarPosicao(i, j, idSessao, idJogador);
    if(!jogadaValida){
    System.out.println(“Jogada inválida!!”);
    }
    }while(!jogadaValida);
    printJogo(jogo.getTabuleiro(idSessao));
    vencedor = jogo.getJogadorVencedor(idSessao);
    }
    }while(vencedor == 0);
    if(vencedor == idJogador){
    System.out.println(“Você venceu!!!”);
    }
    else if(vencedor == -1){
    System.out.println(“Empatou!”);
    }
    else{
    System.out.println(“Você perdeu :(”);
    }
    }
    catch(Exception ex){
    ex.printStackTrace();
    }
    }

private static void printJogo(int[][] tabuleiro){
for(int i = 0; i < tabuleiro.length; i++){
for(int j = 0; j < tabuleiro.length; j++){
System.out.print(tabuleiro[i][j] + " “);
}
System.out.println(”");
}
}
}

Paulo,

Posta o link da classe no nome do Applet?

Neste caso: rmi://127.0.0.1/jogo

Daí obtive esse erro:

Exceção de E/S ao ler: C:\Users\Léo\workspace\jogo-da-velha-distribuido-ifrn-cnat-master\bin\jogo1450344286803.html (O sistema não pode encontrar o arquivo especificado)

Alguém pra me ajudar? :disappointed_relieved:

Leo, essa classe Cliente não é um Applet. Você deve executá-la como uma classe java normal, pelo main.