如何判断包属于哪个模块?

How to tell which module does the package belong to?

给定一些包 foo.bar,我如何找到它属于哪个模块?

例如,包 java.util 属于模块 java.base。我可以通过输入 jdeps -m java.base 并通过长输出来验证它。然而,这假设我先验知识包 java.util 属于模块 java.base.

如何验证包属于哪个模块?

这是你想要的吗?

Optional<Module> found = ModuleLayer
        .boot()
        .modules()
        .stream()
        .filter(module -> module.getPackages().contains("java.util"))
        .findFirst();