javaAgent说明和例子

1. javaagent详细的说明已经在另外一篇文章中有详细说明:

http://blog.csdn.net/kangojian/article/details/8782575


2.javaagent简单例子

package com.google.agent;

import java.lang.instrument.Instrumentation;

/**
 * Created by dell on 2016/12/17.
 */
public class Agent
{
    //premain 方法有两种可能的签名。

    /**
     * JVM 首先尝试在代理类上调用以下方法
     * @param agentArgs agentArgs
     * @param inst inst
     */
    public static void premain(String agentArgs, Instrumentation inst)
    {
        System.out.println("Im 1st premain,My agentAges = [" + agentArgs + "].");
    }

    /**
     * 如果代理类没有实现上面的方法,那么 JVM 将尝试调用该方法
     * @param agentArgs agentArgs
     */
    public static void premain(String agentArgs)
    {
        System.out.println("Im 2ed premain,My agentAges = [" + agentArgs + "].");
    }
}

javaagent只能使用jar包运行,所以需要将该javaagent类导出生成jar包。以IDEA为例:

        》在src目录下创建 META-INF/MANIFEST.MF 文件,内容按如下定义(注意为4行,第4行为空行):

           

Manifest-Version: 1.0
Premain-Class: com.google.agent.Agent
Can-Redefine-Classes: true

》File--Project Structure...--Project Setting--Artifacts,使用+号新加一个Artifacts,如图:


注意:Manifest Files使用上方设置的配置文件。

          》保存成一个新的Artifact

 》回到IDEA,菜单Build > Build Artifacts.. 选择刚才创建的Artifact,点ok 生成了。Output directory目录查看你的jar文件。


3. 简单应用

    

package com.google.demo;

/**
 * Created by dell on 2016/12/17.
 */
public class Demo
{
    public static void main(String[] args)
    {
        System.out.println("This is main.");
    }
}
运行该测试Demo:


运行结果:

Im 1st premain,My agentAges = [agentargs].
This is main.


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值