Java Agent Premain Agentmain
概念
premain是在jvm启动的时候类加载到虚拟机之前执行的
agentmain是可以在jvm启动后类已经加载到jvm中了,才去转换类。 这种方式会转换会有一些限制,比如不能增加或移除字段。
具体的做法,两者的实际做法是差不多的:
premain
定义个静态方法public static void premain(String args, Instrumentation inst),
在java 的启动参数中添加 -javaagent:/jar包路径[=agentArgs] 这样定义了后jvm启动时,就会去加载javaagent中指定的jar包,查找MANIFEST.MF文件中Premain-Class属性的类,执行premain方法。
Manifest-Version: 1.0
Can-Redefine-Classes: true
Premain-Class: com.premian.MyAgent
Can-Retransform-Classes: true
agentmain
定义个静态方法public static void agentmain(String agentOps, Instrumentation instrumentation),
在生成jar包中MANIFEST.MF文件中需要有Agent-Class: xxx.xxx (xxx.xxx就是上面agentmain方法所在的类名)
Can-Retransform-Classes: true
Manifest-Version: 1.0
Can-Redefine-Classes: true
Agent-Class: cn.think.in.java.clazz.loader.asm.agent.AgentMainTraceAgent
Can-Retransform-Classes: true
使用下面代码,将agent添加到指定java进程vm = VirtualMachine.attach(pid);try {vm.loadAgent("D:\\tmp\\my-java-agent-1.0-jar-with-dependencies.jar", null);} finally {vm.detach();}
相关文章:
Java Agent Premain Agentmain
概念 premain是在jvm启动的时候类加载到虚拟机之前执行的 agentmain是可以在jvm启动后类已经加载到jvm中了,才去转换类。 这种方式会转换会有一些限制,比如不能增加或移除字段。 具体的做法,两者的实际做法是差不多的: premain 定义个静…...
Python实现设计模式-策略模式
策略模式是一种行为型设计模式,它定义了一系列算法或策略,并将它们封装成独立的类,使得它们可以相互替换,而不影响客户端的使用。 在策略模式中,算法或策略被封装在单独的策略类中,这些策略类实现了相同的…...
详解SpringCloud微服务技术栈:深入ElasticSearch(4)——ES集群
👨🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:详解SpringCloud微服务技术栈:深入ElasticSearch(3)——数据同步(酒店管理项目&a…...
AlmaLinux上安装Docker
AlmaLinux上安装Docker 文章目录 AlmaLinux上安装Docker一、前言二、具体步骤1、Docker 下载更新系统包索引:添加Docker仓库:安装Docker引擎: 2、Docker服务启动启动Docker服务:设置Docker开机自启: 3、Docker 安装验证…...
熟悉MATLAB 环境
一、问题描述 熟悉MATLAB 环境。 二、实验目的 了解Matlab 的主要功能,熟悉Matlab 命令窗口及文件管理,Matlab 帮助系统。掌握命令行的输入及编辑,用户目录及搜索路径的配置。了解Matlab 数据的特点,熟悉Matlab 变量的命名规则&a…...
【数据库数据恢复】Oracle数据库ASM磁盘组数据恢复案例
oracle数据库故障&分析: oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。 oracle数据库数据恢复过程: 1、将oracle数据库所涉及磁盘以只读方式备份。后续的数据分析和数据恢复操作都…...
STM32CubeMX教程31 USB_DEVICE - HID外设_模拟键盘或鼠标
目录 1、准备材料 2、实验目标 3、模拟鼠标实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.0、工程基本配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.0、配置Project Manager页面 3.2.1、设初始化调用流程 3.2.2、外设中…...
知道Wi-Fi名称和密码之后自动连接
这里写自定义目录标题 有Wi-Fi名称和密码自动连接Wi-Fi主Activity服务类 WIFIStateReceiver工具类 WIFIConnectionManager 有Wi-Fi名称和密码自动连接Wi-Fi 主Activity public class MainActivity extends AppCompatActivity implements View.OnClickListener{private static…...
本地搭建Plex私人影音网站并结合内网穿透实现公网远程访问
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【算法】拦截导弹(线性DP)
题目 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天,雷达捕捉到敌国的导弹来袭。 由于该系…...
记 doris 加载压缩文件(lzo、snappy)pr
做了一个case,是doris支持加载lzo压缩文件。[improvement](load) Enable lzo & Remove dependency on Markus F.X.J. Oberhumers lzo library by HowardQin Pull Request #30573 apache/doris (github.com) 其实doris里已经支持了 lzo,这个case源…...
【Leetcode】2670. 找出不同元素数目差数组
文章目录 题目思路代码结果 题目 题目链接 给你一个下标从 0 开始的数组 nums ,数组长度为 n 。 nums 的 不同元素数目差 数组可以用一个长度为 n 的数组 diff 表示,其中 diff[i] 等于前缀 nums[0, …, i] 中不同元素的数目 减去 后缀 nums[i 1, …, …...
༺༽༾ཊ—Unity之-01-工厂方法模式—ཏ༿༼༻
首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用工厂方法模式 创建 飞船模型, 首先资源商店下载飞船模型,…...
QT仪表盘小工具
头文件: /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE…...
【2024】大三寒假再回首:缺乏自我意识是毒药,反思和回顾是解药
2024年初,学习状态回顾 开稿时间:2024-1-23 归家百里去,飘雪送客迟。 搁笔日又久,一顾迷惘时。 我们饱含着过去的习惯,缺乏自我意识是毒药,反思和回顾是解药。 文章目录 2024年初,学习状态回顾一…...
计算机网络——网络层(3)
计算机网络——网络层(3) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)1 网络层——控制平面因特网中自治系统内部的路由选择总括考虑因素总结 ISP之间的路由选择:BGP考虑因素总结 SDN控制层面重要组件和功能总结 ICMP主要功能和特点…...
ROS2 学习笔记12:使用 colcon 构建软件包
ROS2 学习笔记12:使用 colcon 构建软件包 Background 背景Prerequisites 前提1 Install colcon2 Install ROS 2 Basics 基础1 Create a workspace2 Add some sources3 Source an underlay4 Build the workspace5 Run tests6 Source the environment7 Try a demo Cre…...
基于JAVA+SpringBoot+Vue的前后端分离的医院管理系统
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着计算机科学的迅猛…...
npm淘宝镜像过期解决办法
npm淘宝镜像过期解决办法 因为npm 官方镜像(registry.npmjs.org)在国内访问很慢,我们基本上都会选择切换到国内的一些 npm 镜像(淘宝镜像、腾讯云镜像等)。由于淘宝原来的镜像(registry.npm.taobao.org&am…...
Arduino 官网上下载和使用开发板
在 Arduino 官网上下载和使用开发板可以按照以下步骤进行: 打开浏览器,访问 Arduino 官网(https://www.arduino.cc/)。在官网首页,可以看到各种型号的 Arduino 开发板和相关产品。根据自己的需求选 择合适的开发板型号…...
鼎捷T100——快速构建简易报表:azzi310与azzi910的高效协作
1. 从零开始:理解鼎捷T100报表开发的核心模块 第一次接触鼎捷T100系统时,我被各种功能模块搞得晕头转向。直到真正用azzi310和azzi910协作完成报表开发,才发现这套组合拳的妙处。简单来说,azzi310就像你的SQL编辑器报表设计器&…...
解放你的创造力:用TEdit打造泰拉瑞亚专属世界地图
解放你的创造力:用TEdit打造泰拉瑞亚专属世界地图 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you change…...
Wan2.2-I2V-A14B实战案例:地方政府生成‘乡村振兴’政策解读动画短视频系列
Wan2.2-I2V-A14B实战案例:地方政府生成乡村振兴政策解读动画短视频系列 1. 项目背景与需求分析 近年来,随着数字政务的快速发展,各级地方政府越来越重视利用新媒体技术进行政策宣传。某地方政府计划开展"乡村振兴"系列政策解读工…...
避坑指南:通达信DLL加密常见的5大误区与替代方案
通达信指标加密实战:5种DLL开发陷阱与零代码解决方案 在量化交易领域,指标公式的保护一直是开发者面临的棘手问题。最近三个月内,某金融开发者社区关于"通达信DLL加密失败"的求助帖增长了47%,暴露出传统加密方案存在显…...
Ubuntu14.04下用USRP B100实现多模式无线传输:从PSK到QAM的实战配置
Ubuntu 14.04环境下USRP B100多模式无线传输实战指南 在软件定义无线电(SDR)领域,USRP设备配合GNU Radio软件平台已经成为研究和开发无线通信系统的黄金标准组合。本文将带您深入探索如何在Ubuntu 14.04系统中配置USRP B100硬件,实现从基础PSK到复杂QAM等…...
为什么选择ODB++格式?Cadence与HyperLynx数据交换的最佳实践
为什么选择ODB格式?Cadence与HyperLynx数据交换的最佳实践 在高速PCB设计领域,数据格式的选择直接影响着设计到制造的整个流程效率。当工程师需要在Cadence Allegro和HyperLynx之间传递设计数据时,ODB正逐渐成为行业首选。这种智能数据格式不…...
Electron + Vue 3 + Vite 桌面应用开发:从零到打包的实战指南
1. 为什么选择Electron Vue 3 Vite组合 如果你正在寻找一种既能快速开发又能保证性能的桌面应用解决方案,Electron Vue 3 Vite的组合绝对值得考虑。这个组合最大的优势在于开发体验的提升,特别是对于那些已经熟悉Vue生态的开发者来说。 Vite带来的开…...
KEPServerEX与SQLServer数据库的无缝集成指南
1. KEPServerEX与SQLServer集成的核心价值 在工业自动化和数据采集领域,KEPServerEX作为领先的通信平台,与SQLServer数据库的集成能够实现设备数据到关系型数据库的高效流转。这种组合特别适合需要长期存储设备运行数据、生成生产报表或进行数据分析的场…...
FlexASIO:打破专业音频门槛,让普通设备也能拥有专业级ASIO体验
FlexASIO:打破专业音频门槛,让普通设备也能拥有专业级ASIO体验 【免费下载链接】FlexASIO A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME. 项目地址…...
Linux系统管理必备:常用命令在Phi-3-vision模型部署与运维中的应用
Linux系统管理必备:常用命令在Phi-3-vision模型部署与运维中的应用 1. 前言:为什么需要掌握这些命令 部署和管理AI模型服务时,熟练使用Linux命令就像拥有了一把瑞士军刀。特别是对于Phi-3-vision这样的视觉大模型,从查看日志到监…...
