Por que converter CLASS para TXT?
Um arquivo .class é um bytecode binário compilado e não pode ser lido como texto sem processamento. Desenvolvedores desmontam ou descompilam para .txt para inspecionar o que uma classe faz quando o código-fonte .java original não está disponível, para comparar duas versões compiladas ou para documentar a API pública de uma biblioteca.
Como converter CLASS para TXT
javap (JDK) FREE
Execute javap -c -p MyClass em um terminal para imprimir as instruções de bytecode e, em seguida, redirecione para um arquivo com > MyClass.txt. Adicione -verbose para detalhes do pool de constantes e da versão da classe.
JD-GUI OPEN-SOURCE
Arraste o arquivo .class para o JD-GUI e o código-fonte Java reconstruído aparecerá no editor. Use Arquivo > Salvar Todas as Fontes para exportar como um arquivo .java (texto simples) e renomeie para .txt, se necessário.
CFR OPEN-SOURCE
Execute java -jar cfr.jar MyClass.class > MyClass.txt para redirecionar o código-fonte Java reconstruído diretamente para um arquivo de texto.
Sobre estes formatos
Um arquivo CLASS é um bytecode Java compilado - o resultado que o javac produz a partir de um arquivo fonte .java. Para executá-lo, você precisa do Java (um JDK) instalado e usar o comando…
Abrir detalhes de .CLASS →Um arquivo TXT é um texto simples e não formatado - o formato de documento mais básico em qualquer computador. Clique duas vezes nele: o Windows o abre no Notepad, o macOS no TextEdit, o…
Abrir detalhes de .TXT →Qualidade e o que observar
- Um arquivo
.classcomeça com os magic bytes0xCAFEBABE- abri-lo em um editor de texto mostra lixo binário, não conteúdo legível. - A saída do
javapsão mnemônicos de bytecode (invokevirtual,aload, etc.), não código-fonte Java; use JD-GUI ou CFR se precisar de uma saída semelhante ao código-fonte. - Adicione
-verboseaojavappara incluir a versão principal do arquivo de classe, o pool de constantes e as tabelas de atributos na saída.
Perguntas frequentes
Qual é a diferença entre a saída do javap e a saída de um descompilador?
javap mostra instruções de bytecode (mnemônicos); JD-GUI e CFR reconstroem a sintaxe do código-fonte Java - ambos produzem texto simples, mas diferem significativamente na legibilidade.Preciso instalar algo extra para usar o javap?
javap vem com todas as instalações do JDK; se você tiver ferramentas de desenvolvimento Java instaladas, ele já está disponível.Posso converter um arquivo .class para .txt sem instalar o Java?
javap, JD-GUI e CFR exigem o Java para serem executados, portanto, uma instalação do JDK ou JRE é necessária.