当前位置: 首页 > news >正文

【JVM入门到实战】(三) 查看字节码文件的工具

一、 javap -v命令

  • javap是JDK自带的反编译工具,可以通过控制台查看字节码文件的内容。适合在服务器上查看字节码文件内容。
  • 直接输入javap查看所有参数。
  • 输入javap -v 字节码文件名称 查看具体的字节码信息。(如果jar包需要先使用 jar –xvf 命令解压)
    在这里插入图片描述

二、 jclasslib插件

jclasslib也有Idea插件版本,建议开发时使用Idea插件版本,可以在代码编译之后实时看到字节码文件内容

本地文件可以使用jclasslib工具查看,开发环境使用jclasslib插件。
在这里插入图片描述

三、阿里arthas

  • Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修
    改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。
  • 官网:https://arthas.aliyun.com/doc/
  • dump 类的全限定名:dump已加载类的字节码文件到特定目录。
  • jad 类的全限定名: 反编译已加载类的源码。
    在这里插入图片描述

使用阿里arthas定位线上出现的字节码问题

背景

小李的团队昨天对系统进行了升级修复了某个bug,但是升级完之后发现bug还是存在,小李怀疑是因为没有把最新的字节码文件部署到服务器上,请使用阿里的arthas去确认升级完的字节码文件是不是最新的。

思路

  1. 在出问题的服务器上部署一个 arthas,并启动。
  2. 连接 arthas的控制台,使用 jad命令加上想要查看的类名,反编译出源码。
  3. 确认源码是否是最新的

相关文章:

  • 结构化并发 ForkJoinPool StructuredTaskScope
  • ExoPlayer架构详解与源码分析(10)——H264Reader
  • 【数据结构】平衡树引入
  • 用23种设计模式打造一个cocos creator的游戏框架----(十四)观察者模式
  • SCT52A40——120V,4A,高频高压侧和低压侧栅极驱动器
  • ISP去噪(1)
  • CentOS 7 源码部署 Nginx
  • 【华为OD题库-076】执行时长/GPU算力-Java
  • 音乐制作软件Studio One mac软件特点
  • 文献解读:荧光原位杂交(FISH)
  • 等保2.0的一些问题
  • 【DL-TensorFlow遇错】TensorFlow中遇错合集
  • 低成本物联网安全芯片ACL16_S 系列,可应用物联网认证、 SIM、防抄板和设备认证等产品上
  • PHP中什么是Composer?
  • 数据中心:保障企业运营安全可靠的关键
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • gf框架之分页模块(五) - 自定义分页
  • Koa2 之文件上传下载
  • Laravel核心解读--Facades
  • oldjun 检测网站的经验
  • SQL 难点解决:记录的引用
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 从PHP迁移至Golang - 基础篇
  • 开源地图数据可视化库——mapnik
  • 前端之React实战:创建跨平台的项目架构
  • 微信小程序开发问题汇总
  • 温故知新之javascript面向对象
  • FaaS 的简单实践
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (04)odoo视图操作
  • (C语言)二分查找 超详细
  • (LeetCode) T14. Longest Common Prefix
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (rabbitmq的高级特性)消息可靠性
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (ros//EnvironmentVariables)ros环境变量
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (数据结构)顺序表的定义
  • (四)Controller接口控制器详解(三)
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)视频码率,帧率和分辨率的联系与区别
  • *2 echo、printf、mkdir命令的应用
  • .NET : 在VS2008中计算代码度量值
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • @vue/cli脚手架
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码