电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JavaAgent的簡單例子

瀏覽:4日期:2022-08-14 09:04:08

JavaAgent 是JDK 1.5 以后引入的,也可以叫做Java代理。

JavaAgent 是運行在 main方法之前的攔截器,它內定的方法名叫 premain ,也就是說先執行 premain 方法然后再執行 main 方法。

那么如何實現一個 JavaAgent 呢?很簡單,只需要增加 premain 方法即可。

看下面的代碼和代碼中的注釋說明:

package com.shanhy.demo.agent;import java.lang.instrument.Instrumentation;/** * 我的Java代理 * * @author 單紅宇(365384722) * @myblog http://blog.csdn.net/catoop/ * @create 2016年3月30日 */public class MyAgent { /** * 該方法在main方法之前運行,與main方法運行在同一個JVM中 * 并被同一個System ClassLoader裝載 * 被統一的安全策略(security policy)和上下文(context)管理 * * @param agentOps * @param inst * @author SHANHY * @create 2016年3月30日 */ public static void premain(String agentOps, Instrumentation inst) {System.out.println('=========premain方法執行========');System.out.println(agentOps); } /** * 如果不存在 premain(String agentOps, Instrumentation inst) * 則會執行 premain(String agentOps) * * @param agentOps * @author SHANHY * @create 2016年3月30日 */ public static void premain(String agentOps) {System.out.println('=========premain方法執行2========');System.out.println(agentOps); }}

寫完這個類后,我們還需要做一步配置工作。

在 src 目錄下添加 META-INF/MANIFEST.MF 文件,內容按如下定義:

Manifest-Version: 1.0Premain-Class: com.shanhy.demo.agent.MyAgentCan-Redefine-Classes: true

要特別注意,一共是四行,第四行是空行,還有就是冒號后面的一個空格,如下截圖:

JavaAgent的簡單例子

然后我們打包代碼為 myagent.jar

注意打包的時候選擇我們自己定義的 MANIFEST.MF

JavaAgent的簡單例子

接著我們在創建一個帶有main方法的主程序工程,截圖如下:

JavaAgent的簡單例子

然后將該主程序打包為 myapp.jar

如何執行 myagent.jar ?我們通過 -javaagent 參數來指定我們的Java代理包,值得一說的是 -javaagent 這個參數的個數是不限的,如果指定了多個,則會按指定的先后執行,執行完各個 agent 后,才會執行主程序的 main 方法。

命令如下:

java -javaagent:G:myagent.jar=Hello1 -javaagent:G:myagent.jar=Hello2 -javaagent:G:myagent.jar=Hello3 -jar myapp.jar

輸出結果:

G:>java -javaagent:G:myagent.jar=Hello1 -javaagent:G:myagent.jar=Hello2 -javaagent:G:myagent.jar=Hello3 -jar myapp.jar

=========premain方法執行========

Hello1

=========premain方法執行========

Hello2

=========premain方法執行========

Hello3

特別提醒:如果你把 -javaagent 放在 -jar 后面,則不會生效。也就是說,放在主程序后面的 agent 是無效的。

比如執行:

java -javaagent:G:myagent.jar=Hello1 -javaagent:G:myagent.jar=Hello2 -jar myapp.jar -javaagent:G:myagent.jar=Hello3

只會有前個生效,第三個是無效的。 輸出結果:

G:>java -javaagent:G:myagent.jar=Hello1 -javaagent:G:myagent.jar=Hello2 -jar myapp.jar -javaagent:G:myagent.jar=Hello3

=========premain方法執行========

Hello1

=========premain方法執行========

Hello2

命令中的Hello1為我們傳遞給 premain 方法的字符串參數。

至此,我們會使用 javaagent 了,但是單單看這樣運行的效果,好像沒有什么實際意義嘛。

我們可以用 javaagent 做什么呢?下篇文章我們來介紹如何在項目中應用 javaagent。

最后說一下,還有一種,在main方法執行后再執行代理的方法,因為不常用,而且主程序需要配置 Agent-Class,所以不常用,如果需要自行了解下 agentmain(String agentArgs, Instrumentation inst) 方法。

以上就是JavaAgent的簡單例子的詳細內容,更多關于JavaAgent的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 广东教师资格网-广东教师资格证考试网| 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 上海诺狮景观规划设计有限公司 | 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | 世纪豪门官网 世纪豪门集成吊顶加盟电话 世纪豪门售后电话 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 铜镍-康铜-锰铜-电阻合金-NC003 - 杭州兴宇合金有限公司 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 |