Alguém sabe alguma forma de ler os bytecodes de um .class? Quando eu abro ele no vim (ou qualquer outro editor), aparecem vários caracteres estranhos e o código fica ilegível. Tenho certeza que existe alguma forma de ler bytecodes, pois tem muita gente que resolve problemas olhando o código gerado neles.
public class Teste {
public static void main(String[] args) {
System.out.println("Se eu pudesse matava mil, mil, mil. Que eu so caba Homi. Mato inte o delegado.");
}
}
javap -c Teste:
[code]Compiled from “Teste.java”
public class Teste extends java.lang.Object{
public Teste();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3; //String Se eu pudesse matava mil, mil, mil. Que eu so caba Homi. Mato inte o delegado.
5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}[/code]
saida com hexadump do Teste.class (man hexadump/hd no seu linux para mais opcoes): (Somente pra quem é caba Homi)
[quote=Mark_Ameba]Voce quer ler o código-fonte a partir do class?
Se for o caso use o cajav como o Vini indicou.[/quote]
Não. Eu não gostaria de recuperar o source code, mas sim ler os bytecodes mesmo. Fiz a sujestão do GradeBook e deu certo. Se alguém souber de outro método, por favor, poste aqui.