Converteer .class naar .java

Ik heb een aantal .class-bestanden die ik naar .java moet converteren, dus dat heb ik gedaan:

javap -c ClassName.class

en de hele tijd heb ik dezelfde fout

ERROR:Could not find ClassName.class

Hebben jullie enig idee wat de oorzaak kan zijn? Ik heb man javap gedaan en voor zover ik weet, is de syntaxis correct. Als er een andere manier is om het naar een .java-bestand te converteren, ben ik meer dan bereid om het te proberen.


Antwoord 1, autoriteit 100%

javapaanroepen om de bytecode te lezen

De opdracht javapneemt klassenamen aan zonder de extensie .class. Probeer

javap -c ClassName

.class-bestanden terug converteren naar .java-bestanden

javapgeeft je echter niet de implementaties van de methoden in java-syntax. Het zal je het hoogstens geven in JVM bytecode-formaat.

Om daadwerkelijk te decompileren(d.w.z. het omgekeerde van javacte doen), moet u de juiste decompiler gebruiken. Zie bijvoorbeeld de volgende gerelateerde vraag:


Antwoord 2, autoriteit 2%

Ik vermoed dat ofwel de klassenaam verkeerd is – zorg ervoor dat je de volledig opgeloste klassenaam gebruikt, bij alle pakketten – of het staat niet in het CLASSPATH, zodat javap het niet kan vinden.


Antwoord 3

Ik heb de http://www.javadecompilers.comgebruikt, maar in sommige klassen krijg je de melding “kan deze lessen niet laden…”

Download in plaats daarvan Android Studio, navigeer naar de map met het java-klassebestand en dubbelklik erop. De code wordt weergegeven in het rechterdeelvenster en ik denk dat je het kunt kopiëren en vanaf daar kunt opslaan als een java-bestand


Antwoord 4

Dit is voor Mac-gebruikers:

allereerst moet je duidelijk maken waar het klassenbestand is… dus bijvoorbeeld in ‘Terminal’ (een Mac-toepassing) typ je:

cd

dan is waar je ook een bestand plaatst, bijvoorbeeld:

cd /Users/CollarBlast/Desktop/JavaFiles/

dan zou je op enter drukken. Daarna zou je het commando doen.
bijvoorbeeld:

cd /Users/CollarBlast/Desktop/JavaFiles/(dan zou ik op enter drukken…)

Dan typ ik het commando:

javap -c JavaTestClassFile.class(dan zou ik nogmaals op enter drukken…)

en hopelijk zou het moeten werken!

Other episodes