如何将.class⽂件转换成.java⽂件——JAVA反编译⼯具总结[转]项⽬WAR⽂件不含java源⽂件,只有.class⽂件,如何将WAR项⽬导⼊到MyEclipse中去??
我的做法:将WAR中的.class⽂件反编译成.java⽂件,反编译软件我⽤的是Java Decompiler", 由 Pavel Kouznetsov开发,⽬前最新版本为0.2.5.它由 C++开发,并且官⽅可以下载 windows、linux和苹果Mac Os三个平台的可执⾏程序。
如何将现有的web程序导⼊到myeclipse环境中去
如果要将别⼈发布的war包,导⼊到⾃⼰的eclipse环境中进⾏再开发,最快的⽅法如下:
1、新建⼀个myeclipse的web project。
2、右键该⼯程,myeclipse/add struts capability,设置成struts开发环境。
3、将war包解压,全⽬录覆盖新⼯程的WebRoot(包括其中的web-inf/meta-inf⽬录),相应的scr⽬录(或者对应的包含java⽂件的⽬录)覆盖eclipse的src⽬录。myeclipse会⾃动将WEB-INF\lib下的jar包作为放到classpath中的。
4、refresh该⼯程,over。
JAVA语⾔是1995年5⽉由SUN公司发布的,由于其安全性⾼、代码优化、跨平台等特性,迅速取代了很多传统⾼级语⾔,占据了企业级⽹络应⽤开发等诸多领域的霸主地位。不过,JAVA最突出的跨平台优势使得它不能被编译成本。
JAVA语⾔是1995年5⽉由SUN公司发布的,由于其安全性⾼、代码优化、跨平台等特性,迅速取代了很多传统⾼级语⾔,占据了企业级⽹络应⽤开发等诸多领域的霸主地位。中国⽹管联盟www、bitsCN、com
不过,JAVA最突出的跨平台优势使得它不能被编译成本地代码,⽽要以中间代码的形式运⾏在虚拟机环境中,这使得JAVA的反编译要⽐别的⾼级语⾔容易实现,并且反编译的代码经过优化后⼏乎可以与源代码相媲美。
为了更好地保护知识产权,避免本公司的智⼒成果轻易被⼈窃取,开发者有必要对反编译⼯具深⼊了解,以便有针对性地采取保护措施。⽬前,⽐较流⾏的JAVA反编译⼯具有近30种,其中有三款堪称精品:
⼀、应⽤⼴泛的JAD
在众多的JAVA反编译⼯具中,有⼏种⾮常著名的⼯具使⽤了相同的核⼼引擎——JAD,其中主要包括:java源代码加密
Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家。
JAD本⾝是⼀个命令⾏⼯具,没有图形界⾯,上述的这些⼯具⼤多是在JAD内核的基础之上加了⼀个图形界⾯⽽已。这么多种产品的共同选择,⾜可证明JAD在JAVA反编译领域中的尊贵地位。
笔者⽤来测试的JAD版本是1.5.8f。
JAD是使⽤Microsoft Visual C++开发的,运⾏速度⾮常快,可以处理很复杂的JAVA编译⽂件。众多的参数使JAD可以灵活应付多种加密⼿段,令反编译的代码更加优化和易读。由于JAD参数太多,没必要⼀⼀解释,其中有⼏个最常⽤的如下:
54com
-d
- ⽤于指定输出⽂件的⽬录
-s - 输出⽂件扩展名(默认为: .jad),通常都会把输出⽂件扩展名直接指定为.java,以⽅便修改的重新编译。
-8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中⽂的话⼀定要加上这个参数才能正确显⽰。
最常⽤的反编译指令如下所⽰:
Jad –d c:\\javasource –s .java -8 javatest.class
这条指令将当前⽬录下的javatest.class反编译为javatest.java并保存在c:\\javasource⽬录⾥,其中的提⽰输出为中⽂,⽽不是Unicode代码。
⼆、源码开放的JODE
JODE是全球最⼤的开源项⽬⽹站Sourceforge的成员,不要以为源码开放就⼩瞧它,在所有的JAVA反编译器中,JODE的反编译效果是最好的,尤其是对付⼀些常见的加密⼿段,例如混淆技术等,更是出类拔粹。
JODE本⾝也是纯JAVA开发的,最近越来越多的JAVA反编译软件也选择JODE来做它们的核⼼引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit’s JavaInsight plugin等。
JODE是⼀个可运⾏的JAR⽂件,在windows环境下双击即可运⾏。
中国⽹管联盟www.bitscn
需要特别说明的是,JODE不是通过常规的Open->File的⽅式来加载JAVA编译后的类⽂件(*.class)或是类包(*.jar)的,⽽是通过在Options菜单中的Set Classpath来实现的,单独的类⽂件可以将它的上⼀级⽬录作为Classpath输⼊,然后再选择Reload Classpath即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。