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, module java.base may have resource "java/lang/object.class" that, convention, class file java.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 close method. failure close module reader may result in resource leak. try-with-resources statement 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

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -