如果在命令行上,则javap -l将显示LineNumberTable和LocalVariableTable(如果存在):
peregrino:$ javac -d bin -g:none src/Relation.java peregrino:$ javap -classpath bin -l Relation public class Relation extends java.lang.Object{public Relation();peregrino:$ javac -d bin -g:lines src/Relation.java peregrino:$ javap -classpath bin -l Relation public class Relation extends java.lang.Object{public Relation(); LineNumberTable: line 1: 0 line 33: 4peregrino:$ javac -d bin -g:vars src/Relation.java peregrino:$ javap -classpath bin -l Relation public class Relation extends java.lang.Object{public Relation(); LocalVariableTable: Start Length Slot Name Signature 0 5 0 this LRelation;javap -c将在反编译开始时显示源文件:
peregrino:$ javac -d bin -g:none src/Relation.java peregrino:$ javap -classpath bin -l -c Relation | headpublic class Relation extends java.lang.Object{ ...peregrino:$ javac -d bin -g:source src/Relation.java peregrino:$ javap -classpath bin -l -c Relation | headCompiled from "Relation.java"public class Relation extends java.lang.Object{ ...以编程方式,我将研究ASM,而不是编写另一个字节码读取器。



