JNI changes for modules
Mandy Chung
mandy.chung at oracle.com
Fri Aug 21 20:55:34 UTC 2020
On 8/21/20 4:42 AM, Florian Weimer wrote:
> I see there's a new GetModule entry point, but I can't find anything
> that interacts directly with it.
>
> The challenge I see is that FindClass often cannot find application
> classes once modules are involved. Technically, I guess that's not a
> new phenomenon and could have happened before once multiple class
> loaders are involved. However, modules seem to encourage such setups
> and expose this functionality to more developers, I suppose.
>
> Is the recommended way to use the jclass parameter of native methods
> with GetModule to obtain the application module, and call
> getClassLoader() and its loadClass(String) methods to get this to
> work? Isn't this a tad bit involved? There's also an asymmetry due
> to the use of source class names, unlike FindClass.
JNI FindClass is equivalent to calling 3-arg Class::forName using the
loader of the caller class that invokes FindClass. It can find the
classes that are visible to the loader. It will find classes in another
module as long as it's exported to the caller's module.
Can you say more about the scenarios what you refer to "FindClass often
cannot find application classes once modules are involved"?
Mandy
More information about the jigsaw-dev
mailing list