源代码丢失的原因有很多:备份文件失败,无法备份文件,不小心删除,硬盘运行错误等等。虽然大多数程序员在他们的职业生涯中都会碰到这种情况,但是我们有好消息:对于一般的Java class文件来说,重新生成源代码并非一件难事。
从class文件中重新生成源代码的过程叫反编译。现在有很多程序可以对Java class文件进行反编译。但最受欢迎的是Java Decompiler (JAD)。JAD是命令行工具,你可以反编译一个类或者一批类,而且对大多数操作系统都是可用的。
当你用JAD反编译类时,你会得到每个被反编译的类的源码。一旦拥有源码,你就可以修改,重新编译,或者备份源码而不必再使用反编译器了。
下面是一个使用JAD命令行的例子:
jadEmployee.class
Parsing Employee.class... Generating Employee.jad
JAD的缺点
Java class文件反编译相对来说很轻易;因此,现在有使class文件不被反编译的工具的市场。
这些提供保护的工具叫反反编译工具(obfuscator)。假如你要反编译的class文件被反反编译了,那JAD或者其他类似的程序就不能为这些class文件生成源码了。
反编译器不会重新得到和原来一模一样的代码;它只是生成和原来的代码等价的源码。反编译的class文件得到的源码不会有原来的注释了,所以你丢失了源码就丢失了所有的注释。
假如有适当的备份措施,你就不用在找回丢失的源码了;但是假如你要做这个工作,你会发现JAD很有用。
摘自:ZDnet时间:2003年9月10日