Search code examples
javajarmanifestinstrumentationjavaagents

Specify -javaagent Option in Manifest


To tell the JVM to invoke a Java Instrumentation agent before the main class of a Jar file, you usually have to invoke it with a command option:

java -javaagent:agent.jar program.jar

Having to type this out every time is pretty inconvenient, so is there a way to specify the agent in the program.jar manifest?

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

Solution

  • Java 9 adds the Launcher-Agent-Class attribute which can be used on executable JAR files to start an agent before the main class is loaded.