簡體   English   中英

編譯從現有jar中編輯的單個類文件,沒有依賴項

[英]Compiling a single class file edited from existing jar with no dependencies

我需要從jar中編輯單個類文件。

我已經成功地從jar中提取了類文件,並對其進行了反編譯,發現需要更改的邏輯。

但是,我無法重新編譯該類文件,因為它會導入我沒有的,不知道從何處獲取的庫( netbeansiharder )。

所需的文件都應該在jar中,對嗎? 我可以用這個罐子嗎?

我不太了解Java的總體語法,因此與包或jar文件結構相關的任何事情都可能困擾我……

JVM僅需要能夠在運行時找到依賴項。 通常,它們將安裝在標准位置(類路徑),而不是與使用它們的jar捆綁在一起。 但是,從理論上講,您甚至可以在運行時執行諸如下載依賴項之類的操作,然后通過類加載器進行加載。

除此之外,反編譯和重新編譯通常不是一個好主意,因為反編譯是一個有損且容易出錯的過程。 正如您所發現的,它通常僅在簡單情況下有效,並且有局限性。

如果您了解Java字節碼,則可以通過使用Krakatau對其進行反匯編,編輯.j文件然后進行重新匯編來編輯該類。 這使您無需編譯即可編輯任何類文件,這意味着您不需要依賴項。 無論該類有多復雜,它也可以工作,甚至適用於混淆的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM