java - 将类从 URLClassLoader 保存到文件?并反编译它?

标签 java decompiling urlclassloader

可以将 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/

相关文章:

java - 为什么这个 URLClassLoader 有时有效有时无效?

java - 如何将调试器附加到 jvm.dll 执行的 java 程序?

java - 超出 GC 开销限制

blackberry - 黑莓 COD 或 ALX 文件可以反编译吗?

c# - 为什么这个 .dll 在 ILSpy 中有奇怪的字母?

java - 如何保护移动应用程序的 API REST? (如果嗅探请求为您提供 "key")

java - 如何给 JTable 单元格边框(左、右、上、下)不同的颜色?

java - 记录存在时出现 EntityNotFoundException

java - 是否可以在 java 中动态地将 "add"指向类路径?

java - 加载类文件后出现 ClassNotFoundException