Skip to content

Conversation

@headius
Copy link
Member

@headius headius commented Oct 24, 2025

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:

@headius headius added this to the JRuby 10.0.3.0 milestone Oct 24, 2025
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.
@headius headius force-pushed the add_opens_and_native_access branch from 902c602 to 8a4eb63 Compare October 24, 2025 19:16
@headius headius linked an issue Oct 24, 2025 that may be closed by this pull request
@headius headius merged commit 50d95f0 into jruby:master Oct 24, 2025
74 checks passed
@headius headius deleted the add_opens_and_native_access branch October 24, 2025 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot install latest rubocop

1 participant