2

我有一个 War 文件(一个 Java 应用程序)由 64 个类文件以及图像/CSS/JS 文件组成。我丢失了这个战争文件的来源。现在我想对代码进行一些更改。我正在寻找社区关于以下问题的一些专家建议。

  1. 有没有最好的方法将 .class 文件转换为 .java 文件而不会丢失任何代码部分?
  2. 有什么工具可以完成这项任务?
  3. 将 .class 文件转换为 .java 文件以重新创建 war 文件有哪些挑战/缺点?
4

2 回答 2

3
  1. 转换为 Java 字节码几乎是完全可逆的。正如@StephenC 所说,在重新生成的源代码中,您将丢失注释、局部变量的名称等。它可能无法立即编译,但您应该能够再次编译,只需稍作修改。

  2. 你需要一个Java反编译器来做到这一点。试试JD-GUIDJ Java 反编译器

  3. 如果您混淆了您的来源,您恢复的来源将不会更难理解和逆向工程。否则,只需稍加修改,您就应该能够取回您的资源。

于 2012-07-20T06:56:29.357 回答
3

如果你不想花时间去理解反编译的字节码,请开始为任何两个以上类的项目使用版本控制系统和远程存储库。

特别是,你可以将 Git 与 GitHub 一起使用,开源是免费托管的,而如果你想保护你的代码,你可以得到一个便宜的商业订阅。

这次,请使用 JD 等 java 反编译器:

  1. 使用 java 反编译器来反编译字节码。
  2. 从反编译的 java 类中创建一个 git 存储库
  3. 不断与远程仓库同步
于 2012-07-20T07:06:28.443 回答