001-Eclipse、idea集成javap查看字節碼、javap說明


一、概述

  分析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字節碼進行反編譯生成匯編代碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM