, . jar Java 9 - appendToSystemClassLoaderSearch(JarFile jarfile) Java Instrumentation.
MANIFEST.MF.
Launcher-Agent-Class: com.yourpackage.Agent
. Agent.addClassPath(File f) Jar- Agent.addClassPath(File f) classpath Java 8 9+.
public class Agent {
private static Instrumentation inst = null;
public static void agentmain(final String a, final Instrumentation inst) {
Agent.inst = inst;
}
public static boolean addClassPath(File f) {
ClassLoader cl = ClassLoader.getSystemClassLoader();
try {
if (!(cl instanceof URLClassLoader)) {
inst.appendToSystemClassLoaderSearch(new JarFile(f));
return;
}
Method m = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
m.setAccessible(true);
m.invoke(cl, (Object)f.toURI().toURL());
} catch (Throwable e) { e.printStackTrace(); }
}
}