我有两个jar文件,我们称之为domain.jar
和scanner.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
知道我做错了什么吗?从Reflections用法examples它支持多模块项目,所以这应该是可能的。
答案 0 :(得分:3)
-cp
和-jar
选项是互斥的。您使用-jar
,并且类路径由jar文件和其manefest中引用的所有其他jar文件组成,或者您使用-cp
并列出必须属于类路径的所有jar。
使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置。
所以,试试
java -cp domain.jar;scanner.jar your.fully.qualified.MainClass