Java使用agent实现main方法之前

创建Agent项目

  • PreMainExecutor 类,在main方法之前执行此方法
public class PreMainExecutor {

    public static void premain(String agentOps, Instrumentation inst){
        System.out.println("premain execute..........");
    }

}
  • META-INF/MANIFEST.MF
Manifest-Version: 1.0
Premain-Class:test.agent.PreMainExecutor
  • 打包成JavaAgent.jar,并放到D盘。

测试类

  • Test类。
public class Test {

    public static void main(String[] args){
        System.out.println("main..........");
    }

}
  • 执行
java -javaagent:JavaAgent.jar Test
  • 输出
premain execute..........
main..........

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

时间: 2024-10-29 16:08:15

Java使用agent实现main方法之前的相关文章

java中为什么在main方法里面写sleep方法报错

问题描述 java中为什么在main方法里面写sleep方法报错 java中为什么在main方法里面写sleep方法报错,能看到图片吗,图片里有详细代码 解决方案 import java.lang.Thread;有没有加上 解决方案二: 开发建议采用Eclipse开发工具,这样导包和异常处理就很方便了. 解决方案三: 开发建议采用Eclipse开发工具,这样导包和异常处理就很方便了. 解决方案四: java中main()方法是哪个类里面的方法?JAVA中sleep().wait().yield(

java中不使用main方法输出一条语句输出一条语句可以吗

问题描述 今天遇到这样一个问题,我个人感觉是不可以的,因为一个程序如果没有主入口,就没法运行.但是不太确定,如果有知道的话,麻烦告诉我一声,先谢谢了 解决方案 main 方法可以省略 public ? static ? 返回值可以是 int ? 形参可以省略吗? 可以在main 中调用 main 方法吗? 首先Java规定了main()方法必须是公共的,以便于外部程序对主方法的访问,因为程序都是从main()方法起始的,并且main()方法也必须是静态的,首先,为什么要用public: 因为在运

批处理调用java程序中的main方法

问题描述 使用Eclipse创建了一个java程序,想用批处理来调用类中的main方法,并将system.out的打印信息存到本地,批处理要怎么写 解决方案 解决方案二:批处理里面调用命令java.java命令就是执行main函数的

java main方法背后的故事?(转)

jvm java 看似一种语言,实则一个巨大的体系的王国,开发这么多年了,还是没有搞懂,我以为我懂了,可是过了一段时间又忘了,所以说还是没懂 1.main方法说起 编译完我们的java文件后,需要有个一含有main方法的类,java 命令将指示操作系统启动一个jvm进程 这个jvm进程启动后,寻找那个main地方开始执行程序 java [JVM_Options] ClassName_with_main [args_separate_space] main方法的签名必须是 pubic static

详细讲解Java中的main()方法_java

前言 JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了.我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享. Java中的main()方法 java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载.如果没有装载,那么就装载该类,并且装载所有

浅谈java 执行jar包中的main方法_java

浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&

【细说Java】揭开Java的main方法神秘的面纱(转)

大家都知道,main方法是Java应用程序的入口,其定义格式为: public static void main(String[] args) 可是为什么要这么定义呢?不这样定义可以么?main方法可以继承么?可以重载么?可以被其他方法调用么? 1. main方法为什么这么定义? (1) 因为main方法在启动时是通过Java的虚拟机,也就是JVM来调用的,并且没有通过对象的引用来调用,所以main方法是public和static的.而void是因为,main方法在退出时,没有给退出代码,而是在

从java main方法说开去(转)

刚刚接触java语言时,接触的便为一个java main方法.我们知道这样程序就可以运行了,但是程序是怎么运行起来的我们却不知道. 众所周知,当执行一个java程序时,首先会启动一个JVM虚拟机进程,当程序执行完时,JVM进程则消亡.其他导致JVM进程消亡的还有以下情况: System.exit(int)方法,执行该方法时,虚拟机腿粗好.int参数为状态码,为0时,正常退出:若不为0,则异常退出. 遇到异常或错误时.若在程序过程中遇到异常时,不作处理会一直抛出异常到main函数,若main函数也

Myeclipse中没有main方法怎么运行一个.java文件?

问题描述 Myeclipse中没有main方法怎么运行一个.java文件? **平时测试一些代码,都是建立一个普通的.java文件,然后在main方法里面写测试代码的,今天看网上的教学视频,人家没有main方法,只有一个public void testAdd() 方法,居然也是一样点击上面绿色三角的Run按钮,就可以运行这个testAdd()方法里的测试代码了,我也一样操作就报错了,如下两图分别是代码和报错信息,请问是不是要做一些设置才可以这样执行呢?没有main方法的 .java类怎么可以执行