fix: Ensure to load resource with global class loader #61
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When
gdx-jnigen-loader
is put on the module path (to be loaded as an automatically named module in JPMS), it cannot load any libraries in a separate JAR anymore. This patch contains a simple fix to hopefully make things work whengdx-jnigen-loader
is used as a named module.Explanation
After Java 9, all classes are put within some modules. There are three kinds of modules:
With JPMS,
Class#getResource
by default loads resources onlyfrom the current module, making
SharedLibraryLoader
malfunction,whose purpose is to load libraries from other JARs (modules). In contrast,
ClassLoader#getResource
tries to find resources from all loaded modules, which should be used instead to allow usingjnigen
as an automatic module.Reproducing Steps
Preparations
A Working Example
A Failing One