java agent 簡單應用

寫第一個agenthtml

本部分將詳細探討如何寫出第一個本身的java agent。咱們將盡量簡單的書寫第一個簡單的java agent,由於這一部分只是簡單的介紹java agent的用法。編寫一個agent須要寫一個擁有靜態的premain()方法的類,參考以下:java

[java] 
package net.javabeat.articles.javaagent.test; 
 
import java.lang.instrument.Instrumentation; 
 
public class TestJavaAgent { 
 
    public static void premain(String agentArgument, 
            Instrumentation instrumentation) { 
        System.out.println("Test Java Agent"); 
    } 
 

Note:一個類要成爲agent擁有上述的方法是必須的強制的。上面的agent除了向控制檯打印一些簡單的內容什麼都沒有作。
[java]
Manifest-Version: 1.0 
Premain-Class: net.javabeat.articles.javaagent. test.TestJavaAgent jvm

Agents須要被打包成jar文件而且經過 "javaagent"的jvm啓動參數來啓動應用使得應用能夠感知agent的存在。注意,對於一個agent的jar文件擁有Premain—class的屬性是有必要的,由於此屬性制定了這個agent類的全路徑名稱。下面咱們將使用這個agent作點事情,咱們須要作點準備工做,首先咱們須要建立一個簡單的java類以下,注意,在應用運行的時候,咱們調用這個agent,調用一個agent是經過jvm的參數指定的。
[java] 
package net.javabeat.articles.javaagent.test; 
 
public class TestMain { 
    public static void main(String[] args) { 
        System.out.println("Test Main Class"); 
    } 
htm

建立一個名字爲 test-agent.jar,而且把「net.javabeat.articles.javaagent.test.TestJavaAgent」和manifest文件「MANIFET.MF」
打開控制檯,經過下面的命令啓動應用和agent   java -javaagent:test-agent.jar   net.javabeat.articles.javaagent.test.TestMain
 rem

在控制檯你將會看到以下的輸出get

[java] www.2cto.com
Test Java Agent 
Test Main Class io

Note:在這一部分中有一些事情須要注意: 第一:agent是經過傳遞給jvm參數來運行起來的。具體過程就是經過指定 javaagent參數 ,緊跟在javaagent後面的是指定這個jar文件的路徑。第二:java agent 是在咱們應用啓動以前啓動的,這裏能夠經過輸出到控制檯的內容得以證實。class

相關文章
相關標籤/搜索