For dotnet, there is a built-in flag "--self-contained".
For Java, there is a built-in command: https://docs.oracle.com/en/java/javase/17/docs/specs/man/jpa...
This feature alone is a reason why I in some occasions use MRuby, when I have a Ruby script I want to share as standalone binary. I sometimes don't even have to rewrite anything, it just works.
When you normally want to ship apps which are written in Java, C#, python etc. you have to tell your users they have to download that runtime and your deps and how to start the runtime and which args to start your app from the command line.
With mruby you can just ship one file and everything is self contained.