JAVACORE JAVACORE
基础特性
高级特性
容器
IO
并发
JVM
  • Java 教程 📚 (opens new window)
  • JavaCore 教程 📚 (opens new window)
  • Spring 教程 📚 (opens new window)
  • Spring Boot 教程 📚 (opens new window)
🎯 博客 (opens new window)
GitHub (opens new window)
基础特性
高级特性
容器
IO
并发
JVM
  • Java 教程 📚 (opens new window)
  • JavaCore 教程 📚 (opens new window)
  • Spring 教程 📚 (opens new window)
  • Spring Boot 教程 📚 (opens new window)
🎯 博客 (opens new window)
GitHub (opens new window)
  • JavaSE

    • 基础特性

      • Java 开发环境
      • Java 基础语法特性
      • 深入理解 Java 基本数据类型
      • Java 面向对象
      • 深入理解 Java 方法
      • 深入理解 Java 数组
      • 深入理解 Java 枚举
      • Java 控制语句
      • 深入理解 Java 异常
      • 深入理解 Java 泛型
      • 深入理解 Java 反射和动态代理
      • 深入理解 Java 注解
      • Java 常用工具类
      • 深入理解 Java String 类型
    • 高级特性

      • Java 正则从入门到精通
      • Java 编码和加密
      • Java 国际化
      • JDK8 入门指南
      • 源码级深度理解 Java SPI
      • Java 编程规范
    • 容器

      • Java 容器简介
      • Java 容器之 List
      • Java 容器之 Map
      • Java 容器之 Set
      • Java 容器之 Queue
      • Java 容器之 Stream
    • IO

      • Java IO 模型
      • Java NIO
      • 深入理解 Java 序列化
      • Java 网络编程
      • Java IO 工具类
    • 并发

      • Java并发简介
      • Java线程基础
      • Java并发核心机制
      • Java锁
      • Java原子类
      • Java并发和容器
      • Java线程池
      • Java并发工具类
      • Java内存模型
      • ForkJoin框架
      • Synchronized
    • JVM

      • JVM 体系结构
      • Java 内存管理
      • JVM 垃圾收集
      • JVM 字节码
      • JVM 类加载
      • JavaAgent 应用指南
        • 参考资料
      • JVM 命令行工具
      • JVM GUI 工具
      • JVM 实战
      • Java 故障诊断
    • Java 面试总结
  • Java
  • JavaSE
  • JVM
dunwu
2022-04-08
目录

JavaAgent 应用指南

# JavaAgent 应用指南

Javaagent 是什么?

Javaagent 是 java 命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,它利用 JVM 提供的 Instrumentation API 来更改加载 JVM 中的现有字节码。

  1. 这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。
  2. Premain-Class 指定的那个类必须实现 premain() 方法。

premain 方法,从字面上理解,就是运行在 main 函数之前的的类。当 Java 虚拟机启动时,在执行 main 函数之前,JVM 会先运行-javaagent所指定 jar 包内 Premain-Class 这个类的 premain 方法 。

在命令行输入 java可以看到相应的参数,其中有 和 java agent 相关的:

-agentlib:<libname>[=<选项>]
			  加载本机代理库 <libname>, 例如 -agentlib:hprof
			  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]
			  按完整路径名加载本机代理库
-javaagent:<jarpath>[=<选项>]
			  加载 Java 编程语言代理, 请参阅 java.lang.instrument

# 参考资料

  • java.lang.instrument (opens new window)
📝 帮助改善此页面! (opens new window)
#Java#JavaSE#JVM#JavaAgent
上次更新: 2023/02/10, 14:13:28
JVM 类加载
JVM 命令行工具

← JVM 类加载 JVM 命令行工具→

最近更新
01
JavaSE
05-06
02
源码级深度理解 Java SPI
04-26
03
Java 基础语法特性
01-25
更多文章>
Theme by Vdoing | Copyright © 2019-2023 钝悟(dunwu) | CC-BY-SA-4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×