Perché convertire CLASS in TXT?
Un file .class è bytecode binario compilato e non può essere letto come testo senza elaborazione. Gli sviluppatori disassemblano o decompilano in .txt per ispezionare cosa fa una classe quando il sorgente originale .java non è disponibile, per confrontare due versioni compilate o per documentare l'API pubblica di una libreria.
Come convertire CLASS in TXT
javap (JDK) FREE
Esegui javap -c -p MyClass in un terminale per stampare le istruzioni bytecode, quindi reindirizza su un file con > MyClass.txt. Aggiungi -verbose per i dettagli del constant pool e della versione della classe.
JD-GUI OPEN-SOURCE
Trascina il file .class su JD-GUI e il sorgente Java ricostruito apparirà nell'editor. Usa File > Save All Sources per esportare come file .java (testo semplice) e rinomina in .txt se necessario.
CFR OPEN-SOURCE
Esegui java -jar cfr.jar MyClass.class > MyClass.txt per reindirizzare il sorgente Java ricostruito direttamente in un file di testo.
Informazioni su questi formati
Un file CLASS è bytecode Java compilato - l'output prodotto da javac a partire da un file sorgente .java. Per eseguirlo è necessario avere Java (un JDK) installato, quindi usare il comando…
Apri dettagli .CLASS →Un file TXT è testo semplice e non formattato - il formato di documento più elementare su qualsiasi computer. Fai doppio clic su di esso: Windows lo apre in Notepad, macOS in TextEdit,…
Apri dettagli .TXT →Qualità e a cosa prestare attenzione
- Un file
.classinizia con i magic bytes0xCAFEBABE- aprendolo in un editor di testo mostrerà spazzatura binaria, non contenuti leggibili. - L'output di
javapè composto da mnemonici bytecode (invokevirtual,aload, ecc.), non sorgente Java; usa JD-GUI o CFR se hai bisogno di un output simile al codice sorgente. - Aggiungi
-verboseajavapper includere nell'output la versione principale del file class, il constant pool e le tabelle degli attributi.
Domande frequenti
Qual è la differenza tra l'output di javap e quello di un decompilatore?
Devo installare qualcosa di extra per usare javap?
Posso convertire un file .class in .txt senza installare Java?
javap, JD-GUI e CFR richiedono tutti Java per essere eseguiti, quindi è necessaria un'installazione del JDK o del JRE.