Netbeans模块中的Guava getTopLevelClasses无法找到类

时间:2017-11-05 10:24:15

标签: java netbeans module guava

我正在尝试使用Guava使用这种模式在Netbeans的模块/插件中查找包中的所有类:

ClassLoader cl = getClass().getClassLoader();
Set<ClassPath.ClassInfo> classesInPackage = ClassPath.from(cl).getTopLevelClassesRecursive(pack);

在项目内部进行测试时效果很好,但在部署模块时总是会出现0个类。我尝试了各种类型的ClassLoaders,System和Thread.currentThread但结果相同。我发现了一个与此相关的已知问题,但它适用于Java 9,并且据称已修复。

课程在那里。我目前使用:

ClassLoader cl = getClass().getClassLoader();
Class c = cl.loadClass(className);

手动加载其中一些。

编辑:我使用Java 8和Guava 22

感谢。

1 个答案:

答案 0 :(得分:0)

最后,解决方案非常简单。我通过使用新的URLClassloader作为“ cl”解决了它。在我的特定情况下,我在与“ cl”链接的类路径上加载了另一个jar。

别忘了设置父母。