java - How to get a Module object from a ModuleReference -
using code:
modulefinder.of(paths.get(path)).findall() i able retrieve set<modulereference> of .jars in path folder.
my next step getting module modulereference there's no method returns that, can moduledescriptor 1 doesn't help. there way this?
if desire access module content should open modulereference you've attained. provide access modulereader which
is intended cases access resources in module required
a resource in module identified abstract name
'/'-separated path string. example, modulejava.basemay have resource"java/lang/object.class"that, convention, class filejava.lang.object. module reader may treat directories in module content resources (whether or not module reader specific). module content contains directory can located resource name ends slash ('/'). directory can located name drops trailing slash.
do keep in mind though, docs specify :
a modulereader open upon creation , closed invoking
closemethod. failure close module reader may result in resource leak.try-with-resourcesstatement provides useful construct ensure module readers closed.
one way module resources access using class#getmodule as:
module module = com.foo.bar.yourclass.class.getmodule(); edit: i've learned time better way use modulefinder access module suggested @alan possibly :
modulefinder finder = modulefinder.of(path); modulelayer parent = modulelayer.boot(); configuration configuration = parent.configuration().resolve(finder, modulefinder.of(), set.of("curious")); // 'curious' being name of module classloader systemclassloader = classloader.getsystemclassloader(); modulelayer layer = parent.definemoduleswithoneloader(configuration, systemclassloader); module m = layer.findmodule("curious").orelse(null);
Comments
Post a Comment