當前位置: 妍妍網 > 碼農

效率拉滿,開發了一款可直接編輯 jar 包的 IDEA 外掛程式

2024-06-01碼農

點選「 IT碼徒 」, 關註,置頂 公眾號

每日技術幹貨,第一時間送達!

前言

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

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

下面是一個流程演範例子:

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

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

一些機制

  • 編譯依賴的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

    END

    PS:防止找不到本篇文章,可以收藏點贊,方便翻閱尋找哦。

    往期推薦