当前位置:首页 > 如何评估个人的软件开发能力
由于黑客的频繁活动,使得Java类文件面临着反编译的挑战。有一些工具能够对Java源代码进行反工程,其结果甚至以比普通Java文件更可读的方式, 尽管普通的Java文件(由于代码风格不同)有注释。许可证和软件过期对于用户们来说将变得无用 。因此,防止软件被反编译或使得反编译的结果变得无意义对于Java来说非常重要。混淆器能够保护软件使之不被反编译。它通过混淆类文件使得反编译无效,并把敏感的名字指代变成另一个名字空间,这样可以使反编译的结果毫无疑义。
反编译器能够把字节码class文件反编译成源代码, 混淆器能够保护软件使之不被反编译, 反编译器与混淆器是矛与盾的关系。
JAD、Decafe Pro、DJ Java Decompiler都是Java Class文件的反编译软件。JAD是字符终端的工具,Decafe Pro与DJ Java Decompiler都是GUI界面,在功能上几乎所有的反编译器都差不多,选择哪种就看你的爱好了。不过值得一提的是DJ Java Decompiler,它不需要额外安装JVM(Java Virtual Machine)或是JDK的工具即可使用。不单如此,DJJava Decompiler也兼具有Java程序编辑工具的角色,提供一些辅助功能便于程序撰写与修改,因此值得推荐。另外还有国内程序员编写的\小颖JAVA源代码反编译超级引挚\,支持目录级的反编译,为支持国货起见,在此推荐。
DashO是第三代的Java混淆器(obfuscator)、压缩机(compactor)、优化工具和水印工具,功能很强大,它可以为您的JAVA程序提供反编译保护、提高运行速度和减少程序体积,可惜不是免费的。免费的混淆器有ProGuard RetroGuard以及SUN公司的JODE等等。还有就是多数人使用的JBuilder、Eclipse中集成的混淆器。
3.调试工具
在JAVA语言的早期,一个典型的开发者使用非常陈旧的方法调试程序:使用System.out.println() 方法,现在还依然常用。代码的跟踪信息被打印到控制台、文件或者套接字。当要发布我们的软件时不得不逐个找到这些调试输出,把它们注释掉,当需要维护软件时又要去开启这些调试输出,烦不胜烦。因此逐渐发展出其他的一些调试工具。
下面总结几种JAVA调试工具:
●IDE(集成开发环境) 包含它们自己的调试器 (例如JBuilder、Eclipse)
●单独的GUI工具 (例如JIKES, JAVADT, 以及JProbe)
●基于文本和命令行的工具 (例如Sun JDB)
●野蛮的使用编辑器 (例如Notepad 或者 VI) 检查堆栈描绘(stack traces)
IDE 和独立的GUI 调试器对于初学者是最容易的并且被证明是最节省时间的。调试器将引导你到程序崩溃的地方。在调试器里面执行程序,使用鼠标设置断点并穿越代码。使用这些调试器的不利方面是并非所有的IDE调试器都支持最新的Java API和技术 (例如servlets 和 EJB 组件)。
共分享92篇相关文档