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%
javap
aanroepen om de bytecode te lezen
De opdracht javap
neemt klassenamen aan zonder de extensie .class
. Probeer
javap -c ClassName
.class-bestanden terug converteren naar .java-bestanden
javap
geeft 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 javac
te 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!