是否可以将类从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对象进行序列化。

关于java - 是否将类从URLClassLoader保存到文件?并反编译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22226892/

10-11 04:00