开发时发现框架内部有硬伤,想要修改里面的代码,其实可以这样做:

1.用反编译工具(比如Eclipse里的jad插件)打开jar包里的.class文件;

2.查看这个.class文件的包层次(比如Object类的包层次就是java.lang);

3.在你的项目中创建这个包层次,并创建和这个类名相同的类;

4.然后你可以自定义这个类,或者把.class的源码复制进去自行修改。。;

5.重新发布应用程序,你就会发现相当于已经修改成功了;(好像有人测试说只是Eclipse环境下可以,IDEA会报错,这个到时候用IDEA再说。。。)

为什么会这样呢?这是因为Java加载类的时候采用的是“双亲委派模型”,如下图所示

这个图说明了,当代码中想要加载一个类时,会优先选择应用程序的类加载器,也就是开发人员所写的类,如果程序中没有这个类,才选则扩展类加载器(加载的是<JAVA_HOME>\lib\ext目录下的类库里的类),最后用启动类加载器加载,这个类加载器负责将<JAVA_HOME>\lib目录下的类库加载到虚拟机内存中,用来加载java的核心库,此类加载器并不继承于java.lang.ClassLoader,不能被java程序直接调用,代码是使用C++编写的。是虚拟机自身的一部分。

想修改.class文件?其实可以试试这样做!相关推荐

  1. kjb文件 解析_批量修改MP3文件信息

    前两天本人在整理自己的歌单时(题外话,本人是一个热衷音乐的程序员噢,哈哈),发现之前下载的很多MP3文件里的歌手,标题等信息对不上,很多都是错的.对于患有"强迫症"的本人来说,当然 ...

  2. Android修改R文件包名程,以及批量修改导入R文件

    当我们创建Android工程时,R文件所在包名即初始创建的包名,当我们后期想修改R文件的包名时,其实只需要在 AndroidManifest.xml中将package的名字修改了保存即可, 或者通过 ...

  3. c语言;文件名批量修改要求可以修改整个文件内文件名或后缀名自动,Python批量修改文件名...

    处理语料库时,有些文件名字很不规则,为了方便处理,同义按数字顺序修改名称,主要是用到os模块: import os def RenameFiles(srcdir): #将目录下所有的文件命名为数字开头 ...

  4. c语言;文件名批量修改要求可以修改整个文件内文件名或后缀名自动,ubuntu批量修改文件名字(换动画资源必用)...

    Ubuntu 16.04 批量改文件名 在Ubuntu16.04下给文件批量改名可以使用rename命令. MATLAB中批量修改文件的名字 在运行matlab时有时需要用统一的文件格式,这个时候对文 ...

  5. pdf转word pdf转图片 图片转pdf 修改pdf文件就像操作Word一样方便(Acrobat DC使用介绍)

    修改pdf文件如操作Word一样方便 你是否尝试过很多方法编辑pdf最后却失败了?你是否曾经认为pdf文件只能阅读不能修改. pdf转word pdf转图片 图片转pdf 你曾希望,谁能手把手教你编辑 ...

  6. Win11如何修改hosts文件?Win11修改hosts文件的方法

    ​hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.近期有部分Win11用户想修改hosts文件,但是不太清楚应该如何操作,针对这一情况,今天小 ...

  7. java 修改txt_Java实现批量修改txt文件名称的方法示例

    本文实例讲述了Java实现批量修改txt文件名称的方法.分享给大家供大家参考,具体如下: 最近在做特征选择的实验时,需要批量修改一下文件名称,在这里做一下记录. package com.cqu.exp ...

  8. 杀戮尖塔是用java_杀戮尖塔修改class文件图文教程 杀戮尖塔怎么改class

    杀戮尖塔中玩家们可以单独来修改class文件,来在游戏中得到想要的状态.下面给大家带来杀戮尖塔修改class文件图文教程,感兴趣的玩家可以试一下. 杀戮尖塔修改class文件图文教程 从网上看到有两种 ...

  9. JAVA启动杀怒尖塔_杀戮尖塔如何修改class 杀戮尖塔修改class文件方法步骤图解

    杀戮尖塔如何修改class?相信小伙伴们一定很好奇,修改class文件可以在游戏中得到想要的状态,下面小编为大家带来了杀戮尖塔修改class文件方法步骤图解,感兴趣的小伙伴赶紧跟着小编一起来看看吧. ...

  10. adb修改什么文件获取root权限_记一次获取系统文件的过程

    来自93期优秀学员--王同学的学习笔记 这周学习了安卓adb命令,有些操作需要root权限才能进行,比如调取一些系统文件,于是我按照老师的方法输入adb root,发现出了问题.果然,系统文件是获取不 ...

最新文章

  1. HDU 6058 - Kanade's sum | 2017 Multi-University Training Contest 3
  2. python 传感器数据结构_Python常用的数据结构详解
  3. 在 Mac 上多开微信,还能看到朋友撤回的信息:WeChatTweak
  4. 用好 Java 中的枚举,真的没有那么简单!
  5. 发生了变化 触发器函数不能读它_2013年1月18日调试触发器“表发生了变化,触发器或函数不能读它”的出现原因,以及解决方案...
  6. Python面试必须要看的15个问题
  7. Python 数据库连接
  8. Android Screen
  9. JQM页面跳转,多种效果
  10. 修改手游服务器端数据库,手游服务端框架之配置与玩家数据库设计
  11. 层级 z-index 透明opacity
  12. Linux中chmod命令修改权限详解
  13. VRay渲染器在复仇者联盟:无限战争中应用
  14. 手机android id修改密码,苹果手机怎么设置id账号和密码或重设密码
  15. windows强制删除文件
  16. kindle电子书和新闻推送及RSS资源…
  17. AcWing 1183电力(Tarjan求割点)
  18. Linux的常见问题解答和管理技巧
  19. 你所需要的java基础提升篇大总结
  20. java 拼音识别_JAVA实现汉字转拼音

热门文章

  1. 英特尔打造“ultrabooks”和2013Haswell酷睿处理器
  2. 普渡机器人荣登深圳南山区政府抗疫展览
  3. DIOR数据集下载及预处理
  4. 4种css实现渐变色边框
  5. flutter图片显示的几种方式
  6. 欧姆龙 CJ1W-SCU Matrix功能
  7. 基于springboot的多法社团管理系统
  8. codeforces每日5题(均1600)-第三十三天
  9. 周二资讯:4.6黄金原油今日行情趋势分析及白银短线操作建议
  10. 什么是离群点,离群点的来源,经典离群点挖掘算法及几种新兴的离群点挖掘算法