【问题标题】:Reflections and multiple jars反射和多个罐子
【发布时间】:2013-11-11 10:34:13
【问题描述】:

我有两个 jar 文件,我们称它们为 domain.jarscanner.jar。在扫描仪 jar 中,我使用了 Reflections 库,如下所示:

Reflections reflections = new Reflections(new ConfigurationBuilder().addUrls(ClasspathHelper.forPackage(packageName)).setScanners(new SubTypesScanner(false)));
Set<Class<?>> subTypesOf = reflections.getSubTypesOf(Object.class);

如果我将packageName 指向scanner.jar 中的包,一切正常,但如果我尝试从domain.jar 中查找类,它总是返回空集。

我使用java -cp domain.jar -jar scanner.jar 运行它

知道我做错了什么吗?从反射使用examples 它支持多模块项目,所以这应该是可能的。

【问题讨论】:

    标签: java reflection jar classloader reflections


    【解决方案1】:

    -cp-jar 选项是互斥的。要么使用-jar,类路径由 jar 文件及其清单中引用的所有其他 jar 文件组成,要么使用 -cp 并列出所有必须属于类路径的 jar。

    The documentation 关于 -jar 选项说:

    使用此选项时,JAR 文件是所有用户类的来源,其他用户类路径设置将被忽略。

    所以,试试

    java -cp domain.jar;scanner.jar your.fully.qualified.MainClass
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-28
      • 2016-01-19
      • 1970-01-01
      • 2013-06-19
      • 2023-01-09
      • 1970-01-01
      • 2019-03-03
      • 2012-04-28
      相关资源
      最近更新 更多