Я искал по всему инте rnet безрезультатно. Я пытаюсь использовать 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', что не очень полезно. Но, насколько мне известно, разве это не должно больше походить на каталог моего приложения?
Спасибо за вашу помощь в этом. Это слишком долго меня беспокоило.
РЕДАКТИРОВАТЬ: Я немного покопался. Кажется, что он работает как задумано, если мой путь к файлу не содержит пробел. Я немного читал, что раньше это было проблемой с Guava в старых версиях, но я даже пытался использовать Maven и заливку последней версии Guava. Есть ли способ исправить это, или мне просто нужно быть осторожным, чтобы в пути к моему файлу никогда не было пробела?