Java编译与反编译

Javac是一种编译器,它的作用是将符合Java语言规范的源代码转化成符合Java虚拟机规范的Java字节码。

一、编译过程

  • 词法分析:找出源代码中的所有关键字,生成Token流
  • 语法分析:检查Token流是否符合Java语言规范
  • 语义分析:将复杂的语法转化成最简单的语法,最后形成抽象语法树
  • 生成字节码:将抽象语法树生成字节码

二、Javac和javap编译工具的使用

编译

javac xxx.java

生成xxx.class文件

反编译

方法一:使用javap

1、javap根据option决定输出什么,没有option,将会输出包

javap xxx.class

2、option为c,输出的内容是字节码

javap -c xxx.class

方法二:使用Jad

./jad xxx.class

生成xxx.jad,可以用vim或记事本打开,查看反编译的结果。

原文地址:https://www.cnblogs.com/fonxian/p/6496289.html