【发布时间】:2020-03-23 03:55:17
【问题描述】:
我一直在互联网上四处搜索,但无济于事。我正在尝试使用 Guava 来获取我的包中的所有类,但它的行为不符合预期。它总是返回一个空集,使得不可能对给定的结果做任何事情。系统变量或其他一些障碍是否有问题?
这是我的一些代码。
String packageName = "me.travja.package";
ImmutableSet<ClassPath.ClassInfo> root = null;
try {
System.out.println(ClassPath.from(getClass().getClassLoader()));
root = ClassPath.from(getClass().getClassLoader()).getTopLevelClasses();//.getTopLevelClassesRecursive(packageName);
} catch (IOException e) {
e.printStackTrace();
}
for (ClassPath.ClassInfo info : root) {
System.out.println(info.getPackageName() + " -- " + info.getSimpleName());
}
它永远不会命中最后一个 sout,因为它是空的,但打印类路径的那个会打印 'com.google.common.reflect.ClassPath@33571c14',这不是很有用。但据我所知,这不应该更像我的应用程序目录吗?
感谢您对此的帮助。困扰我太久了。
编辑:我做了一些挖掘。如果我的文件路径不包含空格,它似乎可以按预期工作。我读了一点,这曾经是旧版本的番石榴的问题,但我什至尝试使用 Maven 并为最新版本的番石榴着色。有什么办法可以解决这个问题,还是我只需要小心我的文件路径中永远不会有空格?
【问题讨论】:
标签: java package classpath guava