package com.github.ompc.greys.agent; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; /** * Agent ClassLoader * Created by vlinux on 2016/11/7. */ public class AgentClassLoader extends URLClassLoader { public AgentClassLoader(final String agentJar) throws MalformedURLException { super(new URL[]{new URL("file:" + agentJar)}); } @Override protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { final Class<?> loadedClass = findLoadedClass(name); if (loadedClass != null) { return loadedClass; } try { Class<?> aClass = findClass(name); if (resolve) { resolveClass(aClass); } return aClass; } catch (Exception e) { return super.loadClass(name, resolve); } } }