Hvorfor konvertere CLASS til JAVA?
En .class-fil lagrer kompilert bytekode, ikke kildekode. Dekompilering er nyttig når de originale .java-filene er tapt eller utilgjengelige, for revisjon av tredjepartskode, eller for å forstå hva en kompilert klasse gjør. En dekompilator reverserer bytekoden til en tilnærming av den originale Java-kildekoden.
Hvordan konvertere CLASS til JAVA
JD-GUI OPEN-SOURCE
Dra .class-filen inn i JD-GUI-vinduet, og den gjenskapte kildekoden vises umiddelbart. Bruk Fil > Lagre alle kilder for å eksportere .java-filer.
CFR OPEN-SOURCE
Kjør java -jar cfr.jar MyClass.class --outputdir ./out og den dekompilerte .java-filen vises i utdatamappen.
IntelliJ IDEA Community FREE
Åpne eller dra .class-filen inn i editoren; IntelliJ dekompilerer den automatisk ved hjelp av den innebygde Fernflower-motoren og viser kildekoden.
Om disse formatene
En CLASS-fil er kompilert Java-bytecode - resultatet javac produserer fra en .java-kildefil. For å kjøre den trenger du Java (en JDK) installert, og deretter bruke kommandoen «java…
Åpne .CLASS-detaljer →En JAVA-fil er menneskelig lesbar kildekode skrevet i programmeringsspråket Java. Åpne den i et hvilket som helst tekstredigeringsprogram eller et Java-IDE som IntelliJ IDEA eller VS Code.…
Åpne .JAVA-detaljer →Kvalitet og hva du bør passe på
- Kommentarer i den originale kildekoden fjernes av kompilatoren og kan ikke gjenopprettes fra bytekode.
- Originale lokale variabelnavn blir vanligvis erstattet med genererte navn som «var1», «var2» med mindre klassen ble kompilert med feilsøkingsinfo (
javac -g). - Obfuskert kildekode (behandlet med ProGuard eller R8) dekompileres til knapt lesbar kode - dekompilatoren fungerer, men resultatet gjenspeiler de obfuskerte navnene.
Ofte stilte spørsmål
Kan dekompilert Java-kildekode rekompileres?
Hvordan vet jeg hvilken Java-versjon som kompilerte klassen?
.class-headeren indikerer Java-utgivelsen - for eksempel 52 = Java 8, 61 = Java 17, 65 = Java 21.Hva om jeg bare trenger å inspisere bytekoden, ikke gjenopprette Java-kildekoden?
javap -c -p MyClass (følger med JDK) demonterer bytekoden til mnemoteknikk uten behov for separat nedlasting.