Description
I know this would be a lot of work but this could really ease the deployment on end users. This is not a request but a proposal to discuss about this issue and how we could handle it properly if we were to implement it.
The official launcher, being in electron is native and downloads the correct java version by itself.
The idea would be that we build a replacement for the bootstrap in another language (native, e.g. golang / c++ / rust or one with native bundlers like python. This can probably be done with GraalVM in Java directly but I don't know much about it). This bootstrap's job would be like the current one to download the real launcher, but also a working Java version for it as there is no real JRE for newer java AFAIK (I had to make my friends install JDK...)
Once the launcher is self-sufficient, we could assign a JRE version in the modpack's manifest with some kind of API (Maybe with Adoptium's API so that each modpack can specify which version it should use.
The result would be the enduser having nothing to do to be able to play: just download the bootstrap for its OS, run it and everything gets done for him
This relates to this previous issue: #423
EDIT: Just found out there was something previously started to do this: https://github.com/SKCraft/rusty-bootstrapper
EDIT2: After poking around with the launcher, I've written the steps used by the official launcher on the wiki.vg: https://wiki.vg/Game_files
Activity