Msg de erro

7 respostas
I

Quando tento rodar o seguinte código surge esse erro:
Exception in Thread “main” java.lang.NoSuchMethodError: main
Onde está o erro?

class Q { int n; synchronized int get() { System.out.println("Obtive: "+n); return n; } synchronized void put(int n) { this.n = n; System.out.println("Pus: "+n); } } class Produtor implements Runnable { Q q; Produtor(Q q) { this.q = q; new Thread(this, "Produtor").start(); } public void run() { int i = 0; while(true) { q.put(i++); } } } class Consumidor implements Runnable { Q q; Consumidor(Q q) { this.q = q; new Thread(this, "Cosumidor"). start(); } public void run() { while(true) { q.get(); } } } class PC { public static void main(String args[]) { Q q = new Q(); new Produtor(q); new Consumidor(q); } }

[size=“11”][color=“green”]* Use BBCode ao postar algum código - matheus[/color][/size]

7 Respostas

J

Ae mano…

vc deve tah tentando executar a classe errada…
após compilar tente executar pela linha de comando:

java PC

se der o mesmo erro… talvez seja problemas no CLASSPATH :slight_smile:

H

Vc não diz se as suas classes estão em arquivos diferentes. Esse erro geralmente acontece quando tentamos usar uma classe cuja referência foi atualizada (compilada) e cuja declaração não o foi. Ou vice-versa.

T

vou tentar ler daki… vc devia ter digitado o BB CODE

class Q { 
   int n; 
   synchronized int get() { 
      System.out.println("Obtive: "+n); 
      return n; 
   } 
   synchronized void put(int n) { 
      this.n = n; 
      System.out.println("Pus: "+n); 
   } 
}
class Produtor implements Runnable { 
   Q q; 
   Produtor(Q q) { 
      this.q = q; 
      new Thread(this, "Produtor").start(); 
   } 
   public void run() { 
      int i = 0; 
      while(true) { 
         q.put(i++); 
      } 
   } 
}
class Consumidor implements Runnable { 
   Q q; 
   Consumidor(Q q) { 
      this.q = q; 
      new Thread(this, "Cosumidor"). start(); 
   } 
   public void run() { 
      while(true) { 
         q.get(); 
      } 
   } 
}

class PC { public static void main(String args[]) { Q q = new Q(); new Produtor(q); new Consumidor(q); } }

T

faça cada código desse em 1 arquivo com o mesmo nome da classe

enclusive maiusculas e minusculas…

e no final… execute a classe PC

L

Galera eu compilei e rodou na boa, acho que o nome do seu .java está diferente da sua class PC, so troquei isto e blza.

Espero ter ajudado.

L

E continua rodando o loop marvado hem.

I

Era o .java q estava errado mesmo, agora rodou. Valeu. :lol:

Criado 2 de março de 2004
Ultima resposta 4 de mar. de 2004
Respostas 7
Participantes 5