Add opens and native access to all jar manifests#9038
Merged
headius merged 1 commit intojruby:masterfrom Oct 24, 2025
Merged
Conversation
This modifies the manifests of all executable jars we produce to include the appropriate Add-Opens and Enable-Native-Access flags: * /core's jruby-base jar, executable but without any shaded dependencies * /shaded's jruby-core jar, executable and used as the main dist jar * /maven/jruby-complete's fully-shaded jar Normal JRuby use will go through our launcher and apply these flags at the command line, but this allows these jars to be run with -jar at the command line without producing warnings about unopened packages or native library access. Relates to the following issues that mention the native access warning or our warnings about certain IO packages not being open: * jruby#8727: JRuby being launched from within a Gradle plugin. Fixed by adding the opens flags, but probably also fixed by this commit. * jruby#6721: Warnings about our native process and IO subsystems being unable to access the core JDK classes needed. May not be fixed by this issue, since JRuby appears to be used as a library, not as the main jar. * jruby#8910: Not directly an issue related to these flags, but these flags will eliminate the warning for e.g. the SQLite JDBC driver when JRuby is not being run in the typical way. * https://github.com/jruby/jruby/issues/8932: More issues with native IO and process management not working properly on Windows due to the native launcher not yet including the necessary flags. May be fixed by this commit if the launcher is also still loading JRuby on classpath and not as a module.
902c602 to
8a4eb63
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This modifies the manifests of all executable jars we produce to include the appropriate Add-Opens and Enable-Native-Access flags:
Normal JRuby use will go through our launcher and apply these flags at the command line, but this allows these jars to be run with -jar at the command line without producing warnings about unopened packages or native library access.
Relates to the following issues that mention the native access warning or our warnings about certain IO packages not being open:
rubocop#8727: JRuby being launched from within a Gradle plugin. Fixed by adding the opens flags, but probably also fixed by this commit.