Distributing JAR files has one major inconvenience—it requires Java runtime (JRE) on the user's computer. And, if you want to use the latest features or rely on certain bugfixes, the version of this runtime also becomes important.
For mature commercial level projects, the requirements are usually stated on the download page, or their installer scripts are enhanced with runtime checks on the client side.
But, if you want to simplify your app to the users, there is an option to distribute a Java runtime alongside an application (or a Self-Contained Application). However, note the following cons to this approach:
- You'll lose the run anywhere feature and will have to prepare a separate installer for each platform (such as Windows, masOS, or Linux)
- You need an actual OS installation to create a corresponding bundle
- The runtime...