一、概述
分析java語言特性的一個好幫手是使用javap工具查看java編譯后的字節碼,如何在eclipse中配置javap工具快速查看java字節碼。
二、Eclipse集成javap查看字節碼
代碼工程用的maven結構。默認java編譯后的class文件是放在: 工程目錄/target/classes 下的
首先進入run -> External Tool -> External Tools Configurations 然后在Program 節點選定后右鍵點擊“New” 創建一個新的擴展工具配置。

然后按照如下圖所示配置即可:

Location:指定javap的絕對路徑。
Working Directory: ${project_loc}變量返回工程所在的絕對路徑。
Arguments: 注意這里的參數配置,-classpath 指定的是java代碼編譯后class文件存放的目錄,這里我們配置的是相對於工程根目錄而言,class文件的相對目錄路徑,-c參數后面的值是指定要查看哪個文件的字節碼,${java_type_name} 變量返回你選取的類文件名。使用javap工具之前一定得獲取class文件,因此先讓你的代碼能正常run一遍把。
如果你的工程不是maven的目錄結構,那么只用按照本文配置修改classpath參數的值指定你的class文件存放的相對路徑即可。使用javap工具的時候切記需要激活你當前java的代碼編輯窗口才能使用。
參數verbose
示例
普通bin項目:-verbose -classpath bin -c ${java_type_name}
maven項目:-verbose -classpath target/test-classes -c ${java_type_name}
三、idea配置查看字節碼
1、打開File→Settings→Tools→External Tools;
2、右側添加,配置如下:

name:任意
Program:javap路徑【D:\ProgramFiles\Java\jdk1.8.0_121\bin\javap.exe】
Parameters:-v $FileClass$【同上介紹一致】
Working direstory:$OutputPath$
使用:代碼上右鍵→External Tools選擇即可
四、javap參數說明
查看詳細信息:
javap -help
詳細信息
用法: javap <options> <classes> 其中, 可能的選項包括: -help --help -? 輸出此用法消息 -version 版本信息 -v -verbose 輸出附加信息 -l 輸出行號和本地變量表 -public 僅顯示公共類和成員 -protected 顯示受保護的/公共類和成員 -package 顯示程序包/受保護的/公共類 和成員 (默認) -p -private 顯示所有類和成員 -c 對代碼進行反匯編 -s 輸出內部類型簽名 -sysinfo 顯示正在處理的類的 系統信息 (路徑, 大小, 日期, MD5 散列) -constants 顯示最終常量 -classpath <path> 指定查找用戶類文件的位置 -cp <path> 指定查找用戶類文件的位置 -bootclasspath <path> 覆蓋引導類文件的位置
一般常用的是-v -l -c三個選項。
javap -v classxx,不僅會輸出行號、本地變量表信息、反編譯匯編代碼,還會輸出當前類用到的常量池等信息。
javap -l 會輸出行號和本地變量表信息。
javap -c 會對當前class字節碼進行反編譯生成匯編代碼。
