反编译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:\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、如果编译的时候报出依赖的包不存在,如下:

 

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

 

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

 

转载于:https://www.cnblogs.com/pcheng/p/6929855.html

PaddleOCR在医疗票据识别中的实战:从部署到业务字段提取 本文详细介绍了PaddleOCR在医疗票据识别中的实战应用,重点阐述了其离线部署方案与PP-OCRv3模型选型优势。针对医疗票据敏感数据不出本地的合规要求,文章提供了从环境搭建、模型配置到核心字段提取策略的完整流程,分享了性能优化与系统集成的实践经验,有效解决了医疗票据自动化录入的难题。 阅读详情

相关推荐

异步FIFO的隐形陷阱:复位信号同步化实战解析

本文深入解析异步FIFO设计中复位信号同步化的隐形陷阱,重点分析赛灵思xpm_fifo_async原语在FPGA应用中的常见问题。通过实战代码和系统集成方案,提供复位同步化的最佳实践,帮助工程师避免跨时钟域通信故障,提升系统可靠性。

keras9composer的博客 219

class文件反编译过程

前言 这几天由于工作需要进行了一些反编译的工作,之前的同事离职了,负责的项目代码转交给我,这个项目好长时间没有用了,在看源码的过程中发现里边少了几个类,几经周折找到了以前编译好的jar包。要想恢复就智能进行反编译了。所以就有了以下的这篇文章,总共的来说编译过程还是简单的。 正文 经过查资料普遍都是数jad比较靠谱好用所以就下载的这个反编译的包地址:https://varaneckas.com/jad/ 这些都是,需要什么版本就下载什么版本好了。 下载完成后将要反编译class文件放到相应的位置,如下:

朗福德的博客 1万+

从12摄像头到纯视觉:小鹏AI鹰眼方案如何用LOFIC技术省掉激光雷达?

本文深入解析小鹏汽车AI鹰眼方案如何通过LOFIC技术实现纯视觉自动驾驶,替代传统激光雷达。LOFIC摄像头在动态范围、噪声控制和HDR优化方面表现卓越,结合800万像素双目广角摄像头,达到激光雷达级测距精度。该方案不仅降低成本,还提升系统可靠性和用户体验,展示了纯视觉路线的技术潜力与边界。

t8u9v0w1x的博客 887

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

在没有.java源码的情况下,如果想修改一个.class文件。可以通过以下步骤实现: 修改前的class文件: 1.反编译.class文件成.java文件。   可以使用Java Decompiler这个工具,直接打开对应的.class文件。然后点击菜单:File→Save Source,将文件保存成.java文件。如下: PS:Java Decompiler工具还可以用来反编译...

qq_16177883的博客 5567

反编译class文件

此外,需要注意的是,反编译已编译的代码可能涉及到法律和道德问题,因为它可能会侵犯版权或知识产权。需要注意的是,反编译工具不能保证完全还原原始代码,因为在编译过程中的某些信息可能会丢失或丢弃。选择要反编译的.class文件:在反编译工具中,选择你想要反编译的.class文件。打开反编译工具:打开你选择的反编译工具,通常它会提供一个用户界面,用于浏览和选择要反编译的.class文件。开始反编译:在工具中点击开始反编译或相应的按钮,开始对选择的.class文件进行反编译操作。

ptswitch11的博客 4931

如何实现class文件反编译java-decompiler 反编译工具

打开官方文章,我们会发现这个工具已经已经很久没有更新了,到现在,2024年安装一个旧版本工具,不出意外会遇到很多兼容性问题,所以在本篇文章中,主要说明下在2024年使用这个工具可能存在的一些问题。Java Decompiler是一项开源工具,Java Decompiler工具不仅可以实现反编译.class文件,将.class文件变为可以被我们阅读的.java文件,而且还可以对jar包进行反编译,得到jar包中.class文件反编译的.java文件。如果是windows系统,直接下载jar文件

鳄鱼儿 1万+

myeclipse重新编译java,反编译class文件重新编译方法

在没有.java源码的情况下,如果想修改一个.class文件。可以通过以下步骤实现:修改前的class文件:一、反编译.class文件成.java文件。1、可以使用Java Decompiler这个工具,直接打开对应的.class文件。然后点击菜单:File→Save Source,将文件保存成.java文件。如下:PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下...

weixin_31533357的博客 1167

java 反编译 class_反编译class文件重新编译方法

在没有.java源码的情况下,如果想修改一个.class文件。可以通过以下步骤实现:修改前的class文件:一、反编译.class文件成.java文件。1、可以使用Java Decompiler这个工具,直接打开对应的.class文件。然后点击菜单:File→Save Source,将文件保存成.java文件。如下:PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下...

weixin_28728265的博客 6277

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

在没有.java源码的情况下,如果想修改一个.class文件。可以通过以下步骤实现:修改前的class文件:一、反编译.class文件成.java文件。1、可以使用Java Decompiler这个工具,直接打开对应的.class文件。然后点击菜单:File→Save Source,将文件保存成.java文件。如下:PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下...

weixin_39901412的博客 1167

java 反编译 再编译_简单的反编译class文件重新编译方法

在没有.java源码的情况下,如果想修改一个.class文件。可以通过以下步骤实现:修改前的class文件:一、反编译.class文件成.java文件。1、可以使用Java Decompiler这个工具,直接打开对应的.class文件。然后点击菜单:File→Save Source,将文件保存成.java文件。如下:PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下...

weixin_32171133的博客 3143

如何修改Jar包中的class文件源码详解!

如何修改Jar包中的class文件源码具体步骤概述:要使用的工具:具体步骤: 概述: 在很多情况下,我们可能会需要修改别人jar包中的class文件,网上有很多种办法,而且都比较零散,这里给出一个较完整的步骤,且比较简单适合新手使用的方法(亲测有效) 要使用的工具: 1.反编译工具Java decompile 链接:http://java-decompiler.github.io/ 2.WinR...

Futile的博客 2万+

修改jar包中的.class文件替换(最简单)

在接手项目的时候,要求在只有jar包的情况下,修改class文件进行更新,探索了一段时间,研究出了目前最简单的方法.下载好之后有一个jad.exe的启动文件,将jar包中的src文件夹粘连到与exe同级文件夹。在idea新建一个项目,将刚刚反编译生成的java文件粘连进来。其中src是反编译生成的文件夹名 hussar是目标文件夹。:启动 IntelliJ IDEA 打开你的项目。这里推荐使用jad,可自行搜索官网地址或者私信我。然后打开cmd窗口输入指令。

imagezx的博客 4264

修改jar包中class文件

某日,想要更改jar包中的某个class文件,有无rar无法解压jar文件,故找到如下方式进行操作 1、解压某个jar包:在需要解压的jar包目录下,打开命令行(cmd),输入如下命令,输入:C:\jar>jar xf lm.jar 没有任何反应就表示解压成功。 2、反编译class文件,相同路径新建java文件,修改所需代码,重新编译class文件。 3、压缩jar包:命令:jar...

weixin_30856725的博客 582

如何修改jar包中的class文件

1、把X.jar包中的class用jd-gui、luyten反编译得到源码xxx.java 2、javac -cp A.jar;B.jar;C.jar xxx.java 得到修改后的xxx.class文件 (其中A、B、C是依赖jar包,一般直接依赖一个原始解压的X.jar包即可) 3、建立目录结构,把xxx.class放在原始目录层下,具体是哪个层下可以用jar tf X.jar | fin

修仙 1万+

编辑jar包中class文件的几种方式

在日常的开发中经常使用到第三方一些库,这些库可能提供gradle仓库的依赖,也可能提供jar包,有时候为了我们的一些自定义操作,需要修改这些jar包中的代码.这个时候该怎么做呢? 我所了解的可以修改jar中class的几种方式 aop编程,使用aop框架hook想要修改的class方法,自己实现这个方法或者额外的执行一些代码,但既然是aop,aop的目的也不是這样的,aop适合于面向切面的,多...

long for us 1万+

利用javassist修改.class文件重新打包

问题:想修改jar包中的源码,修改后重新打成jar包 刚开始想用反编译软件jd-gui,反编译之后就可以愉快的修改源码了。但是又遇到一个问题,反编译之后,修改完成,再次编译的时候需要依赖的jar包。 然而我还没有全部依赖的jar包。所以想直接修改.class文件试试。于是乎,在度娘上找到了一些方法,尝试后总结如下。 1.引入javassist包,可以去网上下载(我是从老项目里面找的,貌似用框

周振伟的博客 7144

java 反编译 重新打包_【转】Java-----jar反编译修改重新打包

原文链接:http://blog.csdn.net/hekewangzi/article/details/44676797一、使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编译class文件)打开要修改的jar包(如update.jar),找到jar包中要修改的class文件(如a.class)二、打开Eclipse新建一个Java工程(如demo),添加一个类(如A.j...

weixin_31201481的博客 321

学习源码方法之一:JAR包反编译修改后重新打包

解压jar文件(解压工具)----》反编译.class文件反编译工具jd_gui)----》修改源码文件 ----》编译修改后的源码文件 ----》重新打成jar文件(命令行jar cvf *.jar #)

mzjmmc的博客 376

jclasslib修改class文件内容

出于某些原因 需要把别人jar包里面的class修改一下信息 配置文件*.properties MANIFEST.MF 这些东西可以直接用记事本打开修改 然后替换掉就OK.. 在网上游荡了半天,没有找到合适的方法 开始我是先用jd-gui反编译 把我需要修改的那个A.class文件...

chiman6219的博客 133
上一篇: JAVA中文件与Byte数组相互转换的方法
下一篇: JAVA中正则表达式常用的四个方法
dianluo4096
博客等级 码龄10年 9粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值