簡體   English   中英

從URLClassLoader將類保存到文件? 並反編譯?

[英]Save class to file from URLClassLoader? and decompile it?

可以將類從URLClassLoader保存到普通的file.class嗎? 然后反編譯呢?

我嘗試將它保存為對象使用

        Class<?> clazz = classLoader.loadClass("foo.Bar");
        FileOutputStream sf = new FileOutputStream(f);
        ObjectOutputStream s = new ObjectOutputStream(sf);
        s.writeObject(clazz);
        s.close();

不行不通。

那么...如何反編譯呢? 我需要得到像jd-gui的結果,但是使用來自URLClassLoader的類。

您需要將類名(例如"foo.Bar" )映射到資源路徑名(例如"/foo/Bar.class" ),然后使用classLoader.getResourceAsStream打開流以讀取字節碼文件。

理論上,這可以被提供給反編譯器...假設您有一個可以從InputStream讀取的反編譯器。


您當前正在執行的操作失敗,因為無法序列化Class對象。

執行簡單的HTTP下載而不是URLClassLoader,以將類放入文件中。 然后反編譯。

(將對象寫入ObjectOutputStream只會將數據保存在對象的實例中,即使該對象已實現Serializable也是如此。不是您在這里尋找的。)

暫無
暫無

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

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