Skip to content

Redo java commandline calculation to work with newer Java's#8136

Merged
enebo merged 1 commit intojruby:masterfrom
enebo:find_jar_plus
Mar 5, 2024
Merged

Redo java commandline calculation to work with newer Java's#8136
enebo merged 1 commit intojruby:masterfrom
enebo:find_jar_plus

Conversation

@enebo
Copy link
Member

@enebo enebo commented Mar 1, 2024

The old mechanism (which is still in this) only works for Java 8 and earlier. It walks all ClassLoaders and will cast to a unpublished type to ask for the URL for the jar the classloader represents. Java 9+ cannot do this.

This fix only addresses the main Java jar by asking for a Resource for our Main class then getting a URI which we can make into a valid path to our jar.

What this does not do is walk all CLs. It instead assumes all cp passed into the original Java process will work for a nested one. This may not work for 9+ but it is already broken if so. Java 8 continues to work the same way it always has.

This is part of a fix for #8135

The old mechanism (which is still in this) only works for Java 8 and earlier.
It walks all ClassLoaders and will cast to a unpublished type to ask for
the URL for the jar the classloader represents.  Java 9+ cannot do this.

This fix only addresses the main Java jar by asking for a Resource
for our Main class then getting a URI which we can make into a valid
path to our jar.

What this does not do is walk all CLs.  It instead assumes all cp passed
into the original Java process will work for a nested one.  This may not
work for 9+ but it is already broken if so.  Java 8 continues to work the
same way it always has.
@enebo enebo added this to the JRuby 9.4.7.0 milestone Mar 1, 2024
@enebo enebo merged commit 3490e80 into jruby:master Mar 5, 2024
@enebo enebo deleted the find_jar_plus branch March 4, 2025 18:33
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.

1 participant