简单的反编译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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c花体复制_花式字体大全可复制 花式字体转换器「建议收藏」

    c花体复制_花式字体大全可复制 花式字体转换器「建议收藏」求可复制花体字?1、windows系统的字体文件都放在这个文件夹下:C:\WINDOWS\Fonts,首先打开此文件夹。2、虽然在此文件夹下右键单击字体文件的菜单中无复制粘贴功能,但是却能使用“复制”快捷键,导出字体文件的方法也就是选中所要导出的字体文件,“Ctrl”“C”(复制快捷键),然后再粘贴到目标文件夹就好了。有好心人发一下英文字母h的花式字体吗,谢谢了,要可以复制的,小写的?这与字体有…

    2022年4月29日
    1.2K
  • Python 的 GUI 开发工具 Flexx「建议收藏」

    Python 的 GUI 开发工具 Flexx

    2022年3月4日
    46
  • mysql 修改字段类型

    mysql 修改字段类型mysql修改字段长度altertablenews modifycolumntitlevarchar(130);altertable表名modifycolumn字段名类型;如:news表里的title 字段原来长度是100个字符,现长度要改成130个字符mysql修改字段类型altertablenews mo

    2022年4月29日
    40
  • spss聚类分析的简单例题_聚类分析的简单例题

    spss聚类分析的简单例题_聚类分析的简单例题一、什么是聚类分析聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。聚类分析的目标就是在相似的基础上收集数据来分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。——《百度百科–聚类分析》二、基本步…

    2022年8月31日
    5
  • anaconda与pycharm配合使用_python环境搭建

    anaconda与pycharm配合使用_python环境搭建前天下了一个GitHub开源项目,但是项目的运行是可以用终端命令行运行,以前没用过,在网上也没找到教程说明。下面我来说个简单教程。这个是搭配anaconda的配置环境使用的。首先点pycharm的terminal,就会进入终端命令行,进去了一般是进入了cmd命令行界面,这个时候的环境是你系统自带的python环境,想要配合使用anaconda还要进一步配置点windows找到上面那个嘿嘿的Anacondaprompt,右键进入文件夹,再右键点击属性,进入下面的界面将包括cm

    2022年8月28日
    6
  • OHEM 详解「建议收藏」

    OHEM 详解「建议收藏」(一)HardNegativeMiningMethod(二)OHEM

    2022年5月30日
    41

发表回复

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

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