zoukankan      html  css  js  c++  java
  • 简单的反编译class文件并重新编译的方法

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

    修改前的class文件:

    一、反编译.class文件成.java文件。

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

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

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

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

    三、重新编译成.class文件。

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

      1、首先将.java文件放到JDK的bin目录下,如:“D:Javajdk1.6.0_10in”。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、如果编译的时候报出依赖的包不存在,如下:

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

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

    原文路径:https://www.cnblogs.com/pcheng/p/6929855.html

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/kavinkuan/p/9335819.html
Copyright © 2011-2022 走看看