如何使用Google反射库扫描运行时加载的JAR?

时间:2013-07-09 09:53:42

标签: java runtime classloader google-reflections

是否有配置反射库的解决方案,以便它还扫描在运行时使用URLClassLoader添加的JAR?

目前,反射仅扫描ClassLoader中的URL。这是我现在使用的配置:

Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forClassLoader()));

我在反射库的文档中找不到任何提示。

修改 这是我加载jar文件的方式:

File f = new File("C:/Users/mkorsch/Desktop/test-reflections.jar");
URLClassLoader urlCl = new URLClassLoader(new URL[] {f.toURI().toURL()},System.class.getClassLoader());

1 个答案:

答案 0 :(得分:4)

也许您还需要使用相关的类加载器,

Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forPackage("my.package", myClassLoader)).addClassLoader(myClassLoader));

或者只是:

new Reflections("my.package", myClassLoader, scanners, ...)

documentation中查看。