简单的反编译class文件并重新编译的方法

简单的反编译class文件并重新编译的方法在没有 java 源码的情况下 如果想修改一个 class 文件 可以通过以下步骤实现 修改前的 class 文件 1 反编译 class 文件成 java 文件 可以使用 JavaDecompil 这个工具 直接打开对应的 class 文件 然后点击菜单 File SaveSource 将文件保存成 java 文件 如下 PS JavaDecompil 工具还可以用来反编译

在没有.java源码的情况下,如果想修改一个.class文件。可以通过以下步骤实现:

修改前的class文件:

简单的反编译class文件并重新编译的方法

1.反编译.class文件成.java文件。

   可以使用Java Decompiler这个工具,直接打开对应的.class文件。然后点击菜单:File→Save Source,将文件保存成.java文件。如下:

简单的反编译class文件并重新编译的方法

PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下jar包里的代码实现,如果开发工具里看不到,可以直接用Java Decompiler打开jar包。

2.修改该.java文件中的内容。

  可以直接用开发工具如MyEclipse,或者文本编辑器的方式对.java文件进行修改。

简单的反编译class文件并重新编译的方法

3.重新编译成.class文件。

  前面2步比较简单,重点是这一步。重新编译成.class可以通过javac命令来执行。

  3.1、首先将.java文件放到JDK的bin目录下,如:“D:\Java\jdk1.6.0_10\bin\”。PS:如果要编译的java文件中没有依赖其他类,单独放就可以。如果有依赖原先项目中的其他类,可以将原先整个项目的classes文件目录都放进JDK文件夹的lib目录下。

  3.2、右键.java文件→用记事本打开该文件→文件→另存为→检查.java文件是否是ANSI编码,如下图。如果是UTF-8会因为乱码而编译报错,保存成ANSI编码。

简单的反编译class文件并重新编译的方法

3.3、开始菜单→运行…→cmd,打开命令行工具,使用javac命令编译java文件。如:“javac d:/java/jdk1.6.0_10/bin/test/TestDecompile.java”。如果没有报错(PS:如果报缺少依赖包的错误请看第四步),就是编译成功了,可以在.java文件所在的目录找到编译好的.class文件,如下:

简单的反编译class文件并重新编译的方法

简单的反编译class文件并重新编译的方法

3.4、可用Java Decompiler工具,查看.class文件中的内容是否正确,如下:

简单的反编译class文件并重新编译的方法

PS:反编译.class文件并重新编译的方法到这里就讲完了。

4、编译时缺少依赖包的解决方法。

  4.1、如果编译的时候报出依赖的包不存在,如下:

简单的反编译class文件并重新编译的方法

       4.2、可以将缺少的jar包放到JDK目录下的lib目录,再重新编译(如果缺的是自己编写的class文件,处理方法相同)。

  4.3、如果还是识别不到,则需要配置下环境变量。右键我的电脑→属性→高级系统设置→高级→环境变量→系统变量,在classpath的值最后面加上对应包的路径,即刚放在lib目录的路径,再重新编译即可。如下:

简单的反编译class文件并重新编译的方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233113.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • APK反编译工具_exe反编译工具

    APK反编译工具_exe反编译工具序言:可以利用Python来写一些工具来提高工作效率。把重复繁琐机械化的事情交给Python脚本去完成。这里利用Python来写一个反编译和重签名的工具。一、Python及工具的安装工欲善其事必先利其器。首先下载并安装Python和对应的开发工具。Python的安装进入官网的Downloads下载界面选择对应的python版本。其中executable表示可执行版,需要安装后使用。e…

    2022年9月18日
    4
  • oracle错误904解决方法_遇到oracle错误 12154

    oracle错误904解决方法_遇到oracle错误 12154案例情景–在一次Oracle数据库导出时:C:\DocumentsandSettings\Administrator>exp[emailprotected]_dbfile=E:\lsxy.dmpowner=lsxyExport:Release11.2.0.1.0-Productionon星期一11月2614:07:182012Copyright(c)…

    2022年9月20日
    2
  • python做物联网(物联网技术应用)

    开篇Python作为一门快速发展的解释性编程语言,数以百万计的开发者已经将Python应用在人工智能、游戏开发、数据挖掘、信息安全、系统运维等行业并取得了成功。现如今,一大批国内外头部IoT解决方商正在尝试将Python引入物联网/智能硬件开发行业,部分支持python语言的物联网开发板和模组也陆续面试。例如阿里云智能推出的HaaS开发板,树莓派推出的RaspberryPiPico开发板等。那么,物联网设备会是Python的下一…

    2022年4月12日
    100
  • 数据结构与算法经典书籍——大话数据结构(带配套源码)

    数据结构与算法经典书籍——大话数据结构(带配套源码)书本下载链接:链接:https://pan.baidu.com/s/1jgVnbBZoLgA8pshpxbapOQ密码:577l配套程序链接:https://pan.baidu.com/s/1HYka42KngWT2el7T0HO7LA密码:i6hw虽说数据结构以美国人MarkAllenWeiss写的《数据结构与算法分析——C语言实现》最好,但是我发现他的书让人很不容易理解,可能我们…

    2022年6月3日
    55
  • pycharm有中文插件吗_pycharm中英文切换

    pycharm有中文插件吗_pycharm中英文切换打开file——settings——plugins:1-翻译插件(Translation),哈哈,好用吧,再也不用去用词典翻译了,直接在pycharm里就可以翻译安装:效果:2-汉化pycharm,实在不喜欢这些英语的,把它全部汉化安装:效果:(哈哈,还担心英语不好吗)…

    2022年8月26日
    7
  • KVM查看虚拟机的分区内容(4)

    KVM查看虚拟机的分区内容(4)

    2021年9月12日
    98

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号