gpt4 book ai didi

java - Netbeans 模块中的 Guava getTopLevelClasses 找不到类

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:49 25 4
gpt4 key购买 nike

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

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

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

类(class)就在那里。我目前使用:

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

手动加载其中一些。

编辑:我使用 Java 8 和 Guava 22

谢谢。

最佳答案

最终的解决方案相当简单。我通过使用新的 URLClassloader 作为“cl”解决了这个问题。在我的具体情况下,我在“cl”链接到的类路径上加载了一个额外的 jar。

不要忘记设置父级。

关于java - Netbeans 模块中的 Guava getTopLevelClasses 找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47120470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com