2019独角兽企业重金招聘Python工程师标准>>>

用JBE修改Java字节码

注意:我们在每一章都有一个实战环节,大家在阅读一些基本知识的时候可以同时参考实战,带着实际应用的需要去学习基本知识是一件很愉快的事情。
实战前的开发包和工具准备:
□ 从 http://java.sun.com/javase/downloads/widget/jdk6.jsp​下载Sun的JDK。具体安装过程比较简单,请自行解决。
□ 弄个文本编辑器来编写Java代码,或者下载Java的IDE,推荐从 http://www.eclipse.org/downloads/​下载Eclipse IDE for Java Developers。安装过程简单,请自行解决。
□ 从 http://www.cs.ioc.ee/~ando/jbe​下载Java字节码编辑工具JBE。
□ 从 http://www.codeblocks.org/downloads/binaries​下载codeblocks-*mingw-setup.exe作为C/C++开发工具,其中自带了Mingw的GCC编译工具。如果你有Visual Studio那就不用下了。
用JBE修改Java字节码
 
如下图,我们把左边的Class1代码编译后的.class文件修改成右边源代码的输出结果(用AOP的说法就是拦击方法run,在run运行之前做件事情):
先把源文件编译,用JBE打开编译后的Class1.class文件,找到Methods-run-[0]Code,如下图:
把run方法的字节码修改为下图内容,保存:
OK,我们的任务完成了。
-----------------------------------------------------------------------
借题发挥:我们经常会遇到需要搞明白编译后的Java字节码具体干什么但又没有源文件,我们有两种选择:
□ 阅读字节码,阅读懂的前提条件是了解 Java字节码类文件格式​和 JVM指令集​。
□ 用Java字节码反编译器,即让编译器帮你做了读懂字节码的工作。推荐一个命令行反编译器JAD( http://www.varaneckas.com/jad​)。
相关链接:
《Java平台体系》全书大纲: http://qing.weibo.com/2494474521/94aea919330006hz.html
转http://qing.blog.sina.com.cn/2494474521/94aea919330007vc.html

转载于:https://my.oschina.net/xiaominmin/blog/1597743

用JBE修改Java字节码相关推荐

  1. 《Java平台体系》——第二章 JVM——实战:用JBE修改Java字节码

    说了那么多,大家可能晕晕的,我自己也晕晕的.下面我们来动动手吧! 注意:我们在每一章都有一个实战环节,大家在阅读一些基本知识的时候可以同时参考实战,带着实际应用的需要去学习基本知识是一件很愉快的事情. ...

  2. 使用JBE(Java Bytecode Editor)修改Java字节码

    JBE JBE(Java Bytecode Editor)是一个Java字节码编辑工具,而且是开源的,该项目是基于jclasslib ej-technologies( https://github.c ...

  3. java 修改字节码_使用JBE(Java Bytecode Editor)修改Java字节码

    JBE JBE(Java Bytecode Editor)是一个Java字节码编辑工具,而且是开源的,该项目是基于jclasslib ej-technologies(https://github.co ...

  4. 使用JBE修改.class字节码文件

    1.场景 在excel导出页面数据的时候,发现最多只能导出5000条,但是客户方要求至少得导出66500条吧,本以为问题很简单,我并且还找到了那个类,直接一改,就行了:但是当我测试得时候发现,改动没有 ...

  5. java判断有没有修改,java字节码判断对象应用是否被修改

    原创 1 背景 在学习并发的时候看到了ConcurrentLinkedQueue队列的源码,刚开始的时候是看网上的帖子,然后就到IDE里边看源码,发现offer()方法在1.7版的时候有过修改. 楼主 ...

  6. java 字节码增强原理_深入浅出Java探针技术1--基于java agent的字节码增强案例

    Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...

  7. java探针之修改类字节码文件

    java探针利用了javaAgent + ASM字节码注入工具实现了动态修改类文件的功能.像skywalking和arthas都使用到了这个技术. 具体原理为: jdk1.5以后引入了javaAgen ...

  8. Java字节码介绍及动态修改类

    前言 对于Java字节码,它是在Java类的编译过程产生的,即由.java源文件到.class二进制字节码文件的过程.而Java类的加载又是通过类的名字获取二进制字节流,然后在内存中将字节流生成类对象 ...

  9. 【JVM源码解析】模板解释器解释执行Java字节码指令(上)

    本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Archit ...

最新文章

  1. python中提供怎样的内置库、可以用来创建用户界面_Python程序设计案例课堂第二篇核心技术第十章图形用户界面...
  2. std::string 用法
  3. SAP MIR7输入数量自动金额的设置
  4. WinForm之创建word并操作文档
  5. StrickyAssignor 分配策略
  6. cuba.platform_CUBA 7.2 –有什么新功能?
  7. dog log 算子_DoG和LoG算子
  8. rgb 灰色_金属+RGB+无线,我要买爆这款海盗船VIRTUOSO鉴赏家游戏耳机
  9. java 对象流传输socket_Java Socket(二)使用TCP传输对象
  10. mysql查询,left join(求并集),where(求交集)
  11. redis查询冒号下_实战|还在用单机版?教你用Docker+Redis搭建主从复制多实例
  12. win10易升_记一次因为升级 Win 10 到 2004 版导致的蓝屏问题的解决
  13. C语言运行窗口中的暂停与清屏
  14. eterm系统服务器地址,Eterm管理系统
  15. 港股交易最大手数是如何规定的?
  16. 平板电脑触摸屏市场现状及未来发展趋势
  17. jQuery幻灯片插件Skippr
  18. POJ 2706 Connect
  19. Chapter 19 稳恒磁场
  20. 适用于Linux的3个顶级开源交叉分发软件包管理系统

热门文章

  1. alice 和 bob 一起 van♂卡牌游戏
  2. À¸´£º¹²ÏíÖйúÐÅÏ¢²úÒµ´øÀ´µÄÓ°ÏìÁ¦
  3. WiFi底层通信接口@Netlink
  4. webstorm-主题和配色
  5. 水果店圈子:水果店开业前需要做的准备,水果店开业当天要注意哪些问题
  6. 0.96寸OLED12864屏幕控制(原理+代码)
  7. python封装exe后其他人能用么_python用tesseract写的图片识别,封装exe后,本机可以用,软件放别的电脑上无法图......
  8. Failed to introspect Class [com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration]
  9. 搞计算机的真的不配拥有爱情吗。这是她给我留下的最后一段话
  10. T51 运行文本指令