首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java类反编译

Java类反编译
EN

Stack Overflow用户
提问于 2009-06-13 07:44:22
回答 5查看 1.6K关注 0票数 1

我有一个程序,其中有一些Java类可用。有可能对它们进行分解吗?是否可以修改类的源代码并重新编译它,而不需要所有其他的.class文件?

例如,假设我有一个dog.class文件,它实现了animal.class中定义的动物子类。

  • 我可以不使用dog.java重新编译animal.class吗?
  • 我可以不使用dog.java重新编译animal.java吗?

我不是Java开发人员,所以如果我没有任何意义的话,请纠正我。

EN

回答 5

Stack Overflow用户

发布于 2009-06-13 07:48:33

一般情况下,不。但是,您可以为那些缺少的类创建存根(仅用于编译),然后在有它们的时候替换它们。

票数 1
EN

Stack Overflow用户

发布于 2009-06-13 08:00:29

如果您可以访问已编译的类(在示例中是animal.class),那么可以重新编译子类(dog.java) (但是,您不需要访问超类的源代码)。

如果您甚至无法访问已编译的超类,那么如果您知道相关的方法(从子类中实现或调用的方法),那么您就可以创建超类的存根,只为了让子类编译。

然而,在某一时刻,您将需要编译超类的真正版本才能让您的代码正确执行.

票数 1
EN

Stack Overflow用户

发布于 2009-06-13 08:18:06

为了补充其他答案,您可能需要注意的一个方面是,如果您的类具有复杂的结构,反编译器可能无法将其解压缩到“可重新编译”的状态,您可能需要手动编辑它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/990248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档