python反编译class文件_简单的反编译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目录的路径,再重新编译即可。如下:
反编译class文件并重新编译的方法
在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler ...
删除moduleCache下文件解决预编译头文件相关的编译错误
之前有在代码全部正确的情况下,遇到过下面的编译错误: fatal error: file '.....h' has been modified since the precompiled header ...
简单了解 DLL中, .def 文件及C#调用C++方法
DLL中导出函数的声明有两种方式: 1.在函数声明中加上__declspec(dllexport) //以下内容为 .h 文件中的内容 //向外界提供的端口 extern"C" _ ...
通过预编译头文件来提高C++ Builder的编译速度
C++ Builder是最快的C++编译器之一,从编译速度来说也可以说是最快的win32C++编译器了.除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多Delphi程序员仍受 ...
预编译头文件pch
1. 预编译头文件 作用:提高编译效率.预编译头文件(扩展名为.PCH),是为了提高编译效率而使用的一种方法,把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.避免每次编译 ...
编译Python文件
编译Python文件 一.编译Python文件 为了提高加载模块的速度,强调强调强调:提高的是加载速度而绝非运行速度.python解释器会在__pycache__目录中下缓存每个模块编译后的版本,格式 ...
c++中 预编译头文件PCH
转载:https://blog.csdn.net/lovemysea/article/details/74858430 一.预编译头文件使用经验: 如果预编译头文件被正确使用时,它确实大大提高我们编程 ...
反编译APK文件
有时源代码丢失了,这时如果有apk文件的话,是可以对apk文件反编译得到源文件的,本文介绍一下简单的反编译apk文件的过程. 1.工具 反编译apk需要的工具有两个:apk2java和apktool, ...
随机推荐
SQL 归来
1. PL/SQL 转义 select order#, ……… from **** select col1 from A where col2 like '%\_keywors%' escape ' ...
canvas 学习
Java中迭代器Iterator的使用
Java集合类中Map接口下的相关类并没有像Collection接口的相关类一样实现get()方法,因此在要实现遍历输出的场景中没法直接用get()方法来取得对象中的数据,但Java本身提供了另一种遍 ...
Eclipse中Spring插件的安装
java中为了方便学习使用SSH框架,框架插件的安装是非常必要的. 本博文记录了自己安装Spring插件的过程: 本机环境:win8 64bit eclipse版本:4.5.2 MARS 插件版本:S ...
菜鸟的it之路-起航
之前在知乎上看见怎么学习数据结构下一位答主的回答,他引用了N.Wirth(沃斯)的话:程序=数据结构+算法.(哈,菜鸟无法验证这句话的正确性有多大)但毫无疑问的是,数据结构应当是一名菜鸟程序狗要重点学 ...
关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究
背景介绍 随着业务的发展.需求的变化,促使我们追求使用不同类型的数据库,充分发挥其各自特性.如果决定采用新类型的数据库,就需要将既有的数据迁移到新的数据库中.在这类需求中,将SQL Server中的数 ...
bzoj 3191
非常好的一道题 看到这道题,肯定能想到概率dp,但是状态的设计与转移都是一个难点 如果正向模拟来设计状态,那么不难发现是很难以转移的 所以我们考虑反向模拟,用类似博弈的方法来转移 不难发现,如果只剩了 ...
执行automake时报错 error while making link: Operation not supported
执行automake时报错: [root@localhost project]# automake --add-missingconfigure.in: installing `./install-s ...
EBS报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本
EBS打开报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本 打开EBS的form,系统报错,中文提示信息是:FRM-92095:oracle ji ...
streaming kafka direct 详解
http://blog.cloudera.com/blog/2015/03/exactly-once-spark-streaming-from-apache-kafka/ http://www.jia ...
python反编译class文件_简单的反编译class文件并重新编译的方法相关推荐
- ubuntu java反编译,[原创]Ubuntu下简单配置反编译工具以及其开发环境
0x0:前言 个人电脑重新换了下系统,Ubuntu14.04,刚好需要配置下android的反编译环境,这里简单记录一下,以供有需要的朋友参考. 其实最简单的,只需要apktool就可以了,不过有编码 ...
- [转载] python中的且语句_简单探讨python中的语句和语法
参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...
- python怎么打开ipynb文件_如何优雅的打开.ipynb文件
目前在windows打开.ipynb的文件的方法,网上几乎就只有一种,在cmd下 > jupyter notebook 这个方法只是方便你新建notebook的时候.如果你想再打开它,当你优雅的 ...
- python的代码有哪些_简单python代码类型有哪些?
简单python代码类型有哪些? 简单python代码类型有: 1.[背景] 最近,派大星想要减肥,他决定控制自己的饮食,少吃一点蟹黄堡. 海绵宝宝为了帮助好朋友派大星,和派大星一起制定了一个饮食游戏 ...
- shell换行合并多个文件_如何合并多个pdf文件?这里有合并PDF最简单的方法
如何合并多个pdf文件?今天在整理一些PDF文件的时候,由于文件的数量比较多,我就想着将这些PDF文件合并起来,好在平时也了解了一些PDF合并的方法,很快就完成了文件的合并.想到应该还有很多朋友还不知 ...
- java 删除压缩zip文件_从ZIP存档中删除文件,而无需在Java或Python中解压缩 - java...
从ZIP存档中删除文件,而无需使用Java(首选)或Python解压缩 你好 我使用包含数百个高度压缩的文本文件的大型ZIP文件.解压缩ZIP文件时,可能要花一些时间,并且很容易消耗多达20 GB的磁 ...
- python合并两个属性_合并两个部分包含文件列表及其属性的最有效方法
我有一个系统,该系统运行带有ls或dir命令的变体的自定义cli,并返回工作目录中文件和文件夹的列表. 问题是,我可以使用带标志的命令运行命令,该标志返回文件及其时间戳(创建和最后修改的日期),或者返 ...
- 简单的php文件_简单的php文件上传(实例)
把下面代码另存为uploads.php 简易文件上传 请选择文件: function file_list($dir,$pattern=""){ $arr=array(); $dir ...
- java文件和xml文件_用Java分割大型XML文件
java文件和xml文件 上周,我被要求用Java编写一些东西,该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分. 文件的使用者将是一个中间件应用程序,该应用程序在XML的大尺寸方面 ...
- pyqt5从子目录加载qrc文件_实战PyQt5: 045-添加资源文件
添加资源文件 在使用PyQt进行图形界面开发的时候不免要用到一些外部资源,比如图片,qss配置文件等.在前面代码中,遇到这类问题,我们使用绝对路径的方式来解决,这种方式,本身有其不方便之处(比如,调整 ...
最新文章
- mybatis源码分析之事务管理器
- 前端学习之html——基本结构
- FoodMart数据仓库mysql表及数据初始化
- 两表左连接count某一字段_表连接解决多日留存率问题|SQL
- 多元化时代敏捷软件开发的崛起与传统软件工程的延续
- alert中文信息时乱码,html页面和script标签中均已设置为utf-8依然乱码
- 【java笔记】StringBuilder类
- Microsoft SQL Server Protocols
- Spring学习笔记 Spring项目介绍
- 关于Echarts官网httpsecharts.apache.org打不开的解决方案
- mysql求平方根_MySQL数据库中如何求一个数的二次平方根(SQRT函数)呢?
- 10款神奇的字符图案 词汇云生成工具
- 程序员到底是吃青春饭还要奋斗?那么行业前景又如何?
- 解决uniapp用了textarea标签设置了边框,右边边框溢出手机屏幕问题
- 黎想深度访谈腾讯顶级产品经理的进阶之路——第五篇《匠心》
- Oracle数据库的整体结构
- 【SSLGZ 2134】猫猫的小鱼
- 网络舆情分析的三个步骤及具体实施方案
- lamp 架构的搭建
- 闲谈swi与ucos
热门文章
- 《模拟电子技术基础》课程笔记(七)——放大电路
- Codeforces914D Bash and a Tough Math Puzzle (思维 线段树)
- 八皇后(韩顺平java)
- 红米k50 至尊版 解锁bl 获取root教程步骤
- 查阅我们JavaScript学习新指南
- 深入分析HDFS原理及读写流程
- “舒尔特表”训练法:产生1-25随机数,并打印到一个表格中
- 离散数学笔记整理(个人向)
- 2022西电抗疫CTF个人赛
- ibm服务器aix系统查看cpu,IBM AIX系统硬件信息查看命令(shell脚本)