Что JAVAP -C делает с классом?
Вопрос
На самом деле вопрос немного шире. Я знаю, что Javac компилирует Java-файл в Bytecode, файл класса.Итак, файл класса должен содержать инструкции JVM и все это.С другой стороны, единственный способ увидеть эти инструкции - это декомпилируемый класс файла с Javap -c.Но это не декомпиляция, верно?Потому что, если это было декомпиляция, он будет производить файл Java.Итак, я думаю, что Javac компилирует Java-файл, как 2 раза (который на самом деле не правда, но давайте предположим, что для простоты), сначала к инструкции JVM, затем к Bytecode, поэтому JAVAP -C DECOMPILES из Bytecode для инструкций JVM.JVM должен понимать байткод, поэтому он не может понять инструкции.Я здесь немного запутался.Может ли кто-нибудь объяснить, что здесь происходит?
Решение
javap не dehompile bytecode, it разбираются в разборке .Чтобы объяснить разницу, мы можем переключать термины наоборот наоборот: Compilation переводит читаемый код человека в Bytecode, в то время как сборка переводит инструкции по сборке в Bytecode.
Другие советы
javap
Отображает читаемую форму человеческую форму инструкций JVM.Инструкции JVM являются коды для JVM.Какой генеракодицетагкод показывает ассемблерный язык.
Если вы хотите увидеть код байта в более читабельной форме, используйте Java Decompiler, E.G. JAD .Для JAD есть несколько обертков UI, включая плагин для Eclipse.