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

[JDK工具-2] javap 类文件解析工具-帮助理解class文件,了解Java编译器机制

在这里插入图片描述

文章目录

  • 1. javap -version 版本信息
  • 2. javap -verbose 输出附加信息
  • 3. javap -l 显示行号和局部变量列表
  • 4. javap -c 对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示每个方法具体的字节码
  • 5. javap -s 输出内部类型签名
  • 6. javap -sysinfo 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
  • 7. javap -constants 显示最终常量

位置:jdk\bin
作用:对class文件进行解析
语法:javap <options> <classes>

参数说明
-version版本信息
-verbose输出附加信息
-l显示行号和局部变量列表
-c对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示每个方法具体的字节码
-s输出内部类型签名
-sysinfo显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
-constants显示最终常量

在cmd中cd 到class文件所在目录即可执行语句

源代码:

package com.xin.demo.hutooldemo;import cn.hutool.core.io.FileUtil;
import java.io.File;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;public class demo1FileUtil {private static String baseFolderPath = "C:\\D\\project3\\ruoyi-vue-pro\\yudao-server";private static String exportFolder = "D:\\tableNameFolder";private static String reg = "(a|b)\\.\\w*";public demo1FileUtil() {}public static void main(String[] args) {List<File> fileList = FileUtil.loopFiles(baseFolderPath);FileUtil.mkdir(exportFolder);FileUtil.clean(exportFolder);FileUtil.writeLines(fileList, exportFolder + "\\classList.txt", "utf-8");Set<String> matchTableNameSet = new HashSet();Pattern pattern = Pattern.compile(reg, 2);fileList.stream().forEach((file) -> {List<String> lineList = FileUtil.readLines(file, "utf-8");lineList.stream().forEach((line) -> {Matcher matcher = pattern.matcher(line);if (matcher.find()) {String group = matcher.group();if (!StringUtils.equals(group, "a.")) {matchTableNameSet.add(group);} else {matchTableNameSet.add(group + "表名换行了,类为:" + file);}}});});FileUtil.appendLines(matchTableNameSet, exportFolder + "\\tableNameList.txt", "utf-8");}
}

1. javap -version 版本信息

在这里插入图片描述

2. javap -verbose 输出附加信息

在这里插入图片描述

3. javap -l 显示行号和局部变量列表

在这里插入图片描述

4. javap -c 对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示每个方法具体的字节码

在这里插入图片描述

5. javap -s 输出内部类型签名

在这里插入图片描述

6. javap -sysinfo 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)

在这里插入图片描述

7. javap -constants 显示最终常量

在这里插入图片描述

相关文章:

  • 云桌面 node_modules 切换艰辛历程记录 rebuild失败记录
  • Java源码分析:Guava之不可变集合ImmutableMap的源码分析
  • PyTorch神经网络-激励函数
  • flink源码分析之功能组件(一)-metrics
  • 前缀和(c++,超详细,含二维)
  • 【双指针】快乐数
  • PHP字符串函数的解析
  • 【JS】Chapter13-构造函数数据常用函数
  • Elasticsearch备份与还原:使用elasticdump
  • DBeaver连接本地MySQL
  • Arduino驱动DS18B20数字温度传感器(温湿度传感器)
  • 国外客户发开发信怎么发?写外贸邮件方法?
  • 鸿蒙4.0开发笔记之DevEco Studio之配置代码片段快速生成(三)
  • 【计算机视觉】24-Object Detection
  • 【图数据库实战】HugeGraph图计算流程
  • CAP 一致性协议及应用解析
  • CSS居中完全指南——构建CSS居中决策树
  • Mocha测试初探
  • Python学习之路16-使用API
  • Redis在Web项目中的应用与实践
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 测试如何在敏捷团队中工作?
  • 记一次删除Git记录中的大文件的过程
  • 前端面试题总结
  • 算法-插入排序
  • 正则表达式-基础知识Review
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (zhuan) 一些RL的文献(及笔记)
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (轉)JSON.stringify 语法实例讲解
  • .cfg\.dat\.mak(持续补充)
  • .NET CLR基本术语
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .net操作Excel出错解决
  • .Net环境下的缓存技术介绍
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .Net语言中的StringBuilder:入门到精通
  • ::前边啥也没有
  • @RequestBody与@ResponseBody的使用
  • @RequestMapping 的作用是什么?
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 第一章] JavaScript 简史
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • []串口通信 零星笔记
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BJDCTF2020]The mystery of ip
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [C++] 统计程序耗时