Varför konvertera CLASS till TXT?
En .class-fil är kompilerad binär bytecode och kan inte läsas som text utan bearbetning. Utvecklare disassemblerar eller dekompilerar till .txt för att inspektera vad en klass gör när den ursprungliga .java-källkoden inte är tillgänglig, för att jämföra två kompilerade versioner eller för att dokumentera ett biblioteks publika API.
Hur man konverterar CLASS till TXT
javap (JDK) FREE
Kör javap -c -p MyClass i en terminal för att skriva ut bytecode-instruktioner, och omdirigera sedan till en fil med > MyClass.txt. Lägg till -verbose för detaljer om constant pool och klassversion.
JD-GUI OPEN-SOURCE
Dra .class-filen till JD-GUI så visas den rekonstruerade Java-källkoden i redigeraren. Använd Arkiv > Spara alla källor för att exportera som en .java-fil (klartext) och byt namn till .txt vid behov.
CFR OPEN-SOURCE
Kör java -jar cfr.jar MyClass.class > MyClass.txt för att omdirigera rekonstruerad Java-källkod direkt till en textfil.
Om dessa format
En CLASS-fil är kompilerad Java-bytecode - det resultat som javac producerar från en .java-källfil. För att köra den behöver du Java (ett JDK) installerat, använd sedan kommandot «java…
Öppna detaljer för .CLASS →En TXT-fil är ren, oformaterad text - det enklaste dokumentformatet på vilken dator som helst. Dubbelklicka på den: Windows öppnar den i Notepad, macOS i TextEdit, Linux i gedit. Inget…
Öppna detaljer för .TXT →Kvalitet & vad man bör tänka på
- En
.class-fil börjar med de magiska byten0xCAFEBABE- om du öppnar den i en textredigerare visas binärt skräp, inte läsbart innehåll. - Utdata från
javapär bytecode-mnemonics (invokevirtual,aload, etc.), inte Java-källkod; använd JD-GUI eller CFR om du behöver källkodsliknande utdata. - Lägg till
-verboseijavapför att inkludera klassfilens huvudversion, constant pool och attributtabeller i utdatan.
Vanliga frågor
Vad är skillnaden mellan utdata från javap och en dekompilator?
javap visar bytecode-instruktioner (mnemonics); JD-GUI och CFR rekonstruerar Java-källkodssyntax - båda producerar klartext men skiljer sig avsevärt i läsbarhet.Behöver jag installera något extra för att använda javap?
javap följer med varje JDK-installation; om du har Java-utvecklingsverktyg installerade är det redan tillgängligt.Kan jag konvertera en .class-fil till .txt utan att installera Java?
javap, JD-GUI och CFR kräver alla Java för att köras, så en JDK- eller JRE-installation är nödvändig.