首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javap -c对类文件做了什么?

javap -c对类文件做了什么?
EN

Stack Overflow用户
提问于 2012-07-26 16:55:22
回答 2查看 868关注 0票数 2

实际上,这个问题有点宽泛。我知道javac将java文件编译成一个字节码,一个类文件。因此,类文件应该包含jvm指令和所有这些。另一方面,查看这些指令的唯一方法是使用javap -c反编译类文件。但它不是反编译,对吧?因为如果它是反编译的,它会产生java文件。所以,我的猜测是,javac将java文件编译了2次(这实际上不是真的,但为了简单起见,让我们假设它是这样的),首先编译成jvm指令,然后编译成字节码,所以javap -c会从字节码反编译成jvm指令。Jvm应该能理解字节码,因此它不能理解指令。我有点糊涂了。有人能解释一下这是怎么回事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-26 17:01:13

Javap不反编译字节码,它反汇编字节码。为了解释这种差异,我们可以用另一种方式来交换术语:编译是将人类可读的代码转换为字节码,而汇编是将汇编指令转换为字节码。

票数 5
EN

Stack Overflow用户

发布于 2012-07-26 17:02:20

javap显示了人类可读的JVM指令。JVM指令是JVM的代码。javap所展示的是汇编语言。

如果你想以更易读的形式看到字节码,可以使用java反编译器,例如jad。jad有几个UI包装器,包括Eclipse的插件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11665730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档