package com.mojn.jmx; import java.lang.instrument.Instrumentation; import java.net.MalformedURLException; import java.net.URL; /** * Created by johannes on 4/3/14. */ public class Agent { public static void premain(String agentArgument) { Thread thread = Thread.currentThread(); ClassLoader contextClassLoader = thread.getContextClassLoader(); try { URL resource = Agent.class.getResource("ReporterAgent.class"); URL url = new URL(resource.getFile().replaceAll("!.*$","")); System.err.println(url.toExternalForm()); ParentLastURLClassLoader parentLastURLClassLoader = new ParentLastURLClassLoader(new URL[]{url}); Class<?> clazz = parentLastURLClassLoader.loadClass("com.mojn.jmx.ReporterAgent",false); clazz.getMethod("init",String.class).invoke(clazz.newInstance(), agentArgument); } catch (Exception e) { e.printStackTrace(); } finally { thread.setContextClassLoader(contextClassLoader); } } }