在清单中指定 -javaagent 选项

Specify -javaagent Option in Manifest

要告诉 JVM 在 Jar 文件的主要 class 之前调用 Java Instrumentation 代理,您通常必须使用命令选项调用它:

java -javaagent:agent.jar program.jar

每次都必须输入这个很不方便,那么有没有办法在 program.jar 清单中指定代理?

# program.jar/META-INF/MANIFEST.MF
...
Java-Agent: agent.jar

很遗憾,没有这样的选项。作为替代方案,您可以使用附加 API 动态附加 Java 代理。然而,这确实有一些限制,例如它通常只适用于使用 JDK.

分发的 JVM

为了方便 API 附加代理,请查看 Byte Buddy Agent

Java 9 添加 Launcher-Agent-Class 属性,可用于可执行 JAR 文件以在加载主要 class 之前启动代理。