On 15/12/2023 21:47, PavelTurk wrote:
Hello all.
Please, consider the following code:
ClassLoader cl = ....
String className = "com.foo.Bar";
Module module = ???
So, we have class name in a String and it is necessary to get
reference to module
that has this class. The question - is it possible to find out:
1) without loading the class -
Module module = cl.loadClass(className).getModule();
2) without reading content of every module
ModuleReference reference = ...
reference.open().list()....
I mean, is there any ready solution that I can use to find module by
class name and without loading class?
Not in general. The class loader may know about com.sun.Bar but it may
not be its defining loader. Even if you know that cl is (or will be) the
defining class loader for a class named "com.sun.Bar", you don't know if
the class is (or will be) in the unnamed module for cl or a named module
that is mapped to cl.
-Alan