Wenn schon, dann mit JLink ein pasendes JRE bauen und mitliefern, dann muss der Anwedner gar nichts mehr installieren.
Das einfach noch etwas ausgeführt / ergänzt:
Aus Sicht des Herstellers (Oracle) werden derzeit zwei Wege angeboten:
a) Mit Java 9 ist JLink mit beim JDK / OpenJDK. Dieses Tool nutzt die definieren Module incl. Abhängigkeiten um dann ein Image zu erstellen, welches neben den Klassen des Projekts und allen Abhängigkeiten noch alle Elemente des JRE enthält, die benötigt werden. Dabei ist zu beachten: Es werden nur die benötigten Module kopiert, d.h. es ist kein komplettes JRE, das kopiert wird.
Das reicht noch nicht ganz, denn man will es ja als Paket Anderen geben können, somit braucht man einen Installer (Windows: msi / exe, Mac: pkg/dmg und Linux: deb/rpm). Da kommt dann jpackage (jep 343) ins Spiel, das genau da ansetzt (Verfügbar ab Java/OpenJDK 13 oder 14 - bin mir da jetzt nicht ganz sicher).
b) GraalVM. Dabei handelt es sich um eine Runtime, deren Ziel die Erstellung sogenannter Native Images ist. Dabei wird mit Hilfe eines Compilers ein ausführbares Executable erzeugt. Hat einiges mehr an Anforderungen (So benötigt man z.B. Visual Studio unter Windows, Xcode auf Macs und gcc und co unter Linux).
Erfahrungsgemäß ist die Einstiegshürde bei GraalVM am höchsten da hier auch schon das Setup mit am komplexesten ist. JLink selbst benötigt aber fast nichts, so dass dies speziell mit Gradle oder Maven extrem einfach zu nutzen ist. (Komplex wird es erst beim Thema Cross-Builds - also wenn man unter einer Plattform etwas für andere Plattformen bauen möchte. Aber es geht. Bei GraalVM ist dies so nur eingeschränkt möglich - so lassen sich z.B. für Mac keine Binaries unter Linux oder Windows bauen ...)
Beide Wege lassen sich über Open Source abdecken. Ersteres setzt nur das OpenJDK voraus, welches unter GPL steht. Da nur fertig übersetzte Dateien kopiert werden und nichts damit zusammen kompiliert wird, gibt es bezüglich des eigenen Codes keine Probleme mit der GPL:
GraalVM ist etwas komplizierter. Hier findet auch die GPL v2 Anwendung, aber mit der CLASSPATH Ausnahme. Damit ist es möglich mit dem eigenen Code native Binaries zu bauen ohne dass man seinen Code unter GPL stellen muss. Siehe diesbezüglich
https://www.graalvm.org/faq/ und
https://github.com/oracle/graal/blob/master/LICENSE
Das einfach einmal als kleine Ergänzung zu den Aussagen, die bereits getätigt wurden. Meine Empfehlung ist klar, sich den ersten Weg mit JLink und ggf JPackage anzusehen, da hier aus meiner Sicht der Einstieg am einfachsten ist und beim Setup am wenigsten schief gehen kann.