技术标签: 修改 反编译 # JavaWeb JD jar包 源码
在本工程中新建一个java,与待修改的源文件同名。并且将源码中的代码拷贝在该新的java文件中,在新的文件中修改你想修改的类容(因为新文件时自己创建的,所以可以为所欲为的进行修改),然后你会发现在新的java代码中只会用一行代码错误,就是包名路径错误。
这是当然的,因为在jar包中该文件所在包中的位置和我们新建的文件在包中所在的位置是不一样的。当然我们不能将新文件的包名路径改掉,否则就算将该文件编译成功,放在jar中也是没用的。
那么既然如此,我们为何不新建一个包,使其满足该文件所需的包名路径呢?
例如上图中,源码文件中导的包名路径是com.android.pc.ioc.app。我们就在项目中新建这些包,然后将该新的java文件放置其中即可。
我们可以看到这时候,新的java文件就没有导包上的错误了。
接下来的工作就简单了,利用编译器将整个工程编译。自然就可以获得到新java文件的class文件!
然后我们就可以回到刚才的主线上了。
编写修改好的java文件–>编译该java文件为class文件–>解压jar包–>找打待修改文件的class文件并将其替换–>压缩源码文件,并改为jar后缀格式。
随后解压该jar包,替换目标class文件,再次压缩回为jar文件即可!大功告成!
Tips:在最后一步,压缩为jar文件时要选中两项文件后右键压缩,否则导入到工程后会出现包名找不到的错误,也不能在图中文件夹外部文件夹进行压缩,至于压缩jar包的文件名就没什么要求,可以随意取。
总结:本文中的描述方法的关键就是在编译器下通过新建包名对目标文件进行编译。
附(反编译修改法):当然还有一种方法就是“盲改”,意思是通过 JD 反编译后,修改逻辑后,重新编译成 class(如果是用 source 执行则不需要反编译)当然这样唯一的缺陷就是必须要正式启动时才知道编译是否OK!
过渡动画通过 type 设置不同的动画效果, CATransition 有多种过渡效果, 但其实 Apple 官方的SDK只提供了四种:fade 淡出 默认moveIn 覆盖原图push 推出reveal 底部显示出来但私有API提供了其他很多非常炫的过渡动画,如 cube(立方旋转)、suckEffect(吸走)、oglFlip(水平翻转 沿y轴)、...
Java技术-J2EE开发日记-MyEclipse快捷键与插件大全 (1)Ctrl+M切换窗口的大小(2)Ctrl+Q跳到最后一次的编辑处(3)F2当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Tooltip Description。 F3跳到声明或定义的地方。 F5单步调试进入函数内部。
传说中FreeBSD比linux稳定,大型网站几乎都建立在FreeBSD系统上,我一直疑惑难道linux是否真的不能做大型网站。于是用netcraft网站做了个测试:http://toolbar.netcraft.com/site_report?url=www.phpchina.com按照上面的链接你就可以查询任何一个网站的服务器架构,当然,可信度和准确度我不能保证。下面是我测试的案例:www.p_bsd比linux稳定吗
项目需求据称现有环境为多节点RAC,管理成本高,主要体现在没有专业技术人家对基础设施进行维护。迁移到云上以后,基础设施维护就节省掉了。而且后边容量扩充易如反掌,远程维护之类也比物理环境去现场操作方便许多。但在云上,oracle RAC实现的两个前提条件--共享存储及心跳网络,不被正式支持,因此要在云上部署oracle RAC用于生产环境,不是一个好的解决方案。经过多轮讨论,一致同意在百度云部署单实...
package HomeWork;public class Test04 {/** 使用 for 循环语句求出 1~100 之间的质数。*/ public static void main(String[] args) { // TODO Auto-generated method stub for(int i = 2;i<=100;i++ ){ boolean flag = true; ..._for循环求1~100的质数
Windows 10 应用商店下载无速度现象打开商店很快就能显示内容,但是下载时,就是没有速度,网络占用为0。分析打开很快,说明网络没问题微软服务器也没问题解决清理 C:\Windows\SoftwareDistribution\Download。步骤:net stop wuauserv删除 C:\Windows\SoftwareDistributi...
大家在使用Docker部署web应用或者mysql数据库时,会发现当容器重启后,容器运行过程中产生的日志或者数据库数据都会被清空。解决方法:docker可以通过挂载宿主机磁盘目录,来永久存储数据。创建容器时执行Docker Volume使用 docker run 命令,可以运行一个 Docker容器,使用镜像ubuntu/nginx,挂载本地目录/tmp/source到容器目录/tmp/destinationdocker run -itd --volume /tmp/source:/tmp/d_docker start volume 里面的内容不见了
英语发音规则---E字母常见的发音组合有哪些一、总结一句话总结:很好记的e和5个元音字母的组合,加一个非e开头的iee:开音节 /i:/ eve /i:v/ n. 夏娃----闭音节 /e/ leg /leg/ [lɛɡ] n. 腿 ---非重读[ə] /i/ evidence /'evɪdəns/ ['ɛvɪdəns] n. 证据ea:/e/:bread /br..._发[ε]的字母和字母组合有哪些
Squid 已经安装了吗?Squid 的 rpm 文件已经和 RedHat 7.1 捆绑发行了,在安装系统的时候,如果在 Networks 选项中选中的 话,它会自动安装在系统上。您可以用下面的命令检查您的系统中是否已经安装了 Squid: rpm -q squid Squid 的最新版本可以在 Squid 主页 或它的镜像站点得到。 Squid 可以用下述命令安装在系统上: rpm -i_squid deny_info
大家都知道,checkbox 不选中饰,无法传值。当你项目中有此需求时,不防换个思路来思考下。 你可以采用 hidden 隐藏域来判断是否勾选了checkbox,然后通过对隐藏域 进行赋值,这样你就得到了没有勾选的checkbox的值,代码如下:JSP 页面隐藏域:学生教练jquery:if(($("#ST_checkbox不选中的值
WIN10系统如何开启终端_win10终端
SAD(Sum of absolute differences)是一种图像匹配算法。SAD算法的基本流程:1.构造一个小窗口,类似与卷积核。2.用窗口覆盖左边的图像,选择出窗口覆盖区域内的所有像素点。3.同样用窗口覆盖右边的图像并选择出覆盖区域的像素点。4.左边覆盖区域减去右边覆盖区域,并求出所有像素点差的绝对值的和。5.移动右边图像的窗口,重复3,4的动作。(这里有个搜索范围,超过这个范围跳出)6.找到这个范围内SAD值最小的窗口,即找到了左边图像的最佳匹配的像素块。SAD算法具体实_双目sad算法找左像中一点在右边对应得点python代码