java反编译再编译_简单的反编译class⽂件并重新编译的⽅法在没有.java源码的情况下,如果想修改⼀个.class⽂件。可以通过以下步骤实现:
修改前的class⽂件:
⼀、反编译.class⽂件成.java⽂件。
1、可以使⽤Java Decompiler这个⼯具,直接打开对应的.class⽂件。然后点击菜单:File→Save Source,将⽂件保存成.java⽂件。如下:
江铃4s店
奔驰slsamg
PS:Java Decompiler⼯具还可以⽤来反编译jar包,有时候需要了解下jar包⾥的代码实现,如果开发⼯具⾥看不到,可以直接⽤Java Decompiler打开jar包。
⼆、修改该.java⽂件中的内容。
可以直接⽤开发⼯具如MyEclipse,或者⽂本编辑器的⽅式对.java⽂件进⾏修改。
三、重新编译成.class⽂件。
前⾯2步⽐较简单,重点是这⼀步。重新编译成.class可以通过javac命令来执⾏。
1、⾸先将.java⽂件放到JDK的bin⽬录下,如:“D:\Java\jdk1.6.0_10\bin\”。PS:如果要编译的java⽂件中没有依赖其他类,单独放就可以。如果有依赖原先项⽬中的其他类,可以将原先整个项⽬的classes⽂件⽬录都放进JDK⽂件夹的lib⽬录下。
2、右键.java⽂件→⽤记事本打开该⽂件→⽂件→另存为→检查.java⽂件是否是ANSI编码,如下图。如果是UTF-8会因为乱码⽽编译报错,保存成ANSI编码。
北京锐思赛车学校
擦车工具3、开始菜单→运⾏...→cmd,打开命令⾏⼯具,使⽤javac命令编译java⽂件。如:“javac
d:/java/jdk1.6.0_10/bin/test/TestDecompile.java”。如果没有报错(PS:如果报缺少依赖包的错误请看
第四步),就是编译成功了,可以在.java⽂件所在的⽬录到编译好的.class⽂件,如下:
4、可⽤Java Decompiler⼯具,查看.class⽂件中的内容是否正确,如下:
PS:反编译.class⽂件并重新编译的⽅法到这⾥就讲完了。进口大众
四、编译时缺少依赖包的解决⽅法。
1、如果编译的时候报出依赖的包不存在,如下:奔驰cclass
2、可以将缺少的jar包放到JDK⽬录下的lib⽬录,再重新编译(如果缺的是⾃⼰编写的class⽂件,处理⽅法相同)。
3、如果还是识别不到,则需要配置下环境变量。右键我的电脑→属性→⾼级系统设置→⾼级→环境变量→系统变量,在classpath的值最后⾯加上对应包的路径,即刚放在lib⽬录的路径,再重新编译即可。如下: