切換語言為:簡體
分享一款可直接編輯 jar 包的 IDEA 外掛,效率拉滿!

分享一款可直接編輯 jar 包的 IDEA 外掛,效率拉滿!

  • 爱糖宝
  • 2024-05-28
  • 2150
  • 0
  • 0

前言

IDEA自帶的反編譯外掛能開啟jar反編譯class,遺憾的是不能編輯class,有的時候我們需要修改jar的時候還需要解壓,反編譯class,然後新建.java,修改程式碼,再編譯,最後打包jar。

我敢說中間的過程你肯定不是一氣呵成的,如果jar有依賴還要花時間去排查,打包的時候還需要注意編譯jdk的版本,有的命令忘了的話還需要查手冊,其實基本上全是體力活。

我翻遍了IDEA外掛市場並沒有找到合適的直接編輯jar的外掛,於是我打算簡單花點時間寫一個這樣的外掛JarEditor,可以實現無需解壓直接編輯jar內的檔案。

功能介紹

首先IDEA可以反編譯jar,在jar內的class是可以直接開啟看到反編譯程式碼的,外部檔案可以透過File->Project Structure->Libraries新增依賴然後反編譯jar。

使用介紹

在外掛市場安裝外掛JarEditor後,可以在.class反編譯檔案中看到一個切換到Jar Editor的tab頁

分享一款可直接編輯 jar 包的 IDEA 外掛,效率拉滿!

點選Jar Editor後可以直接對反編譯的程式碼進行修改,修改完之後點選Save/Compile會編譯當前修改的java內容並儲存,然後點選Build Jar即可將編譯儲存的class檔案寫入到Jar包內。

這樣編輯一個Jar包內class檔案一氣呵成無需解壓也無需去敲命令。

修改jar包內的資原始檔也是支援的,流程和class檔案是一樣的,也是修改完要儲存,然後再Build Jar即可。

在jar包的工程展示圖,任意檔案右鍵,可以看到JarEditor的New和Delete操作,可以新增檔案和刪除檔案

分享一款可直接編輯 jar 包的 IDEA 外掛,效率拉滿!

一些機制

  • 編譯依賴的JDK是專案工程的JDK,可以選擇編譯的class目標版本,預設和jar包的class版本保持一致

  • 編譯java的時候依賴的classpath就是工程專案的依賴,如果依賴包找不到可以新增依賴

  • Save/Compile會將修改的檔案儲存到jar包所在目錄的jar_edit子目錄下,Build Jar會把會jar_edit目錄的檔案增量寫入jar,最後再刪除這個目錄

總結

此IDEA外掛JarEditor可無需解壓直接編輯jar包內class和資原始檔,感興趣的朋友可以去試試。

原始碼地址:

https://github.com/Liubsyy/JarEditor

依賴IDEA最低版本為IDEA2020.3,大於等於這個版本均可安裝使用。

來源:juejin.cn/post/7368753329666605119

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.