Bytecode

Oi Pessoal

Tenho o seguinte problema.
Quero ler no .class as instruções da VM que ele possui.
Por exemplo, tenho este código .java

for (int i = 2; i < 1000; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0)
continue outer;
}
System.out.println (i);
}

e quero seu bytecode neste formato

0: iconst_2
1: istore_1
2: iload_1
3: sipush 1000
6: if_icmpge 44
9: iconst_2
10: istore_2
11: iload_2
12: iload_1
13: if_icmpge 31
16: iload_1
17: iload_2
18: irem
19: ifne 25
22: goto 38
25: iinc 2, 1
28: goto 11
31: getstatic #84; //Field java/lang/System.out:Ljava/io/PrintStream;
34: iload_1
35: invokevirtual #85; //Method java/io/PrintStream.println:(I)V
38: iinc 1, 1
41: goto 2
44: return

(este exemplo eu peguei em http://en.wikipedia.org/wiki/Java_bytecode)
Alguém sabe como posso fazer isso.
Veja eu não quero um programa decompilador, eu quero decompilar por mim mesmo.
[]'s

por favor amigo, leia isso antes: http://guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Da uma olhada nisso http://www.jboss.org/javassist

Falou.

Cara, não tem mágica não, você tem que estudar a especificação da JVM, o formato de um .class, aprender bytecode por bytecode, qual a correspondência entre cada bytecode e cada opcode e por aí vai. No mais, é abrir um arquivo .class como stream de bytes, processá-lo e gerar um arquivo texto com o resultado, ou exibir em uma janela, etc.