javaAgent说明和例子
2016-12-17 01:09
225 查看
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.
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.
相关文章推荐
- 使用JAVA发送HTTP请求(Http Request),返回HTTP响应(Http Response)内容,代码程序例子及原理说明
- java Future/Callable说明及例子
- Java多态性详细举例说明(很经典例子)
- 以一个小例子来说明java中 == 与 equals() 的区别
- java类中serialversionuid 作用 是什么?举个例子说明
- 用例子来说明面向对象和面向过程的区别(java)
- Java多态性详细举例说明(很经典例子)
- JavaAgent 简单例子
- 一个简单的例子说明java中spring框架的依赖注入
- Java ExecutorService四种线程池的例子与说明
- iText的使用例子说明(利用Itext画模板导出word、pdf,纯java实现)
- 超级简单的例子说明JAVA PACKET CLASS 和变量之间的关系
- Java多态性详细举例说明(很经典例子)
- java OPENCV 连通域, Imgproc.findContours 例子,参数说明
- Java多态性详细举例说明(很经典例子)
- 一个简单的例子说明java中spring框架的依赖注入
- 一个简单的例子说明java中spring框架的依赖注入
- 一个例子说明C语言和Java的区别
- Java ExecutorService四种线程池的例子与说明
- 几个例子说明JAVA中的equals和==区别