有没有办法检索 Web 应用程序加载的类或类加载器?
例如,如果我使用此代码:
ClassLoader c=getClass().getClassLoader();
logmsg("c="+c);
URLClassLoader u=(URLClassLoader)c;
URL[] urls=u.getURLs();
for (URL i : urls) {
logmsg("url: "+i);
}
我正在获取代理使用的库,而不是 Web 应用程序
最佳答案
看看Reflections包裹。它使用 javassist 提供运行时类元数据查找。为了找到正确的类路径 URL,它提供了一个辅助类 ClasspathHelper 。 ClasspathHelper 提供了几个静态方法,它们通过传递目标 WebApp 的 ServletContext 返回 WebApp 的 URL:
static URL forWebInfClasses(javax.servlet.ServletContext servletContext)
static Set<URL> forWebInfLib(javax.servlet.ServletContext servletContext)
关于java - 使用 javaagent 获取 Web 应用程序类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30893039/