2014-10-02 92 views
0

我在查找.jar文件使用的所有外部庫時遇到問題。我的.jar文件非常大,並且手動反編譯並遍歷每個類,檢查所有使用的路徑是不可能的。我想知道是否有方法或工具可以通過.jar文件,並列出所有不在.jar文件中的類的所有外部路徑/鏈接? P:我不是問「這樣做的最佳工具是什麼?」,我只需要知道如何獲得文件使用的所有外部路徑,而無需手動反編譯它。獲取JAR使用的所有外部源路徑

+0

你試圖解決什麼確切的問題?也許可以建議尋找所有外部類別的更好的選擇。 – 2014-10-02 04:34:15

+0

@Rajeev lol,我的主要目標是通過用proguard對其進行混淆來對已改型的minecraft客戶端進行反混淆處理。現在,所有的類/變量/方法都用20個隨機字母/數字命名,我只是想讓它們命名爲A,B,C等。但是爲了做到這一點,我需要知道它的所有依賴關係:D – Victor2748 2014-10-02 04:37:39

+0

@Rajeev有些類名稱超過260個字符,所以我無法反編譯,並將它們導出到eclipse項目中,因爲Windows中的文件路徑限制最多爲260個字符 – Victor2748 2014-10-02 04:40:29

回答

1

試試這個:

  1. 解壓JAR內容
  2. 做管道輸送到一個文本文件*.class目錄搜索。
  3. 過濾掉內部和匿名類。 (與$類的文件名)
  4. 寫一個小程序,只會通過您的列表循環和加載類定義(Class.forName()應該足夠)
  5. 用管道輸送到一個文本文件
  6. 一旦選擇-verbose:class運行jar你的程序完成後,你將不得不在管道文件從各自的罐子加載的類的完整列表
  7. 篩選出的rt.jar內容爲更清潔的列表

我不知道如果-verbose:class工作如果代碼是obfustcated,邏輯上我認爲它應該沒問題。