Für die überwiegende Mehrheit der Benutzer (also diejenigen, die eine Java-Runtime installiert haben) sollten Sie nicht Ihre eigene benutzerdefinierte Ausführungsumgebung verteilen müssen, und tatsächlich geht dies gegen die "spirit" von Java.
Java-Code ist so konzipiert, dass er in jeder Umgebung ausgeführt werden kann, und Sie können das Doppelklick-und-Ausführen-Verhalten eines .exe
mit einem Java-Programm einfach replizieren, indem Sie executable .jar
erstellen.
Dies ist vielleicht nicht ganz die Antwort, die Sie suchen, und wenn dies der Fall ist, sind die Antworten zu lizenzierten JVMs, die Sie benötigen, zu diskutieren. Aber die meisten Java-Entwickler sollten keine Notwendigkeit haben, durch solche Reifen zu springen. Verteilen Sie einfach Ihre Jars und lassen Sie die Benutzer selbst eine Java-Laufzeit installieren.
Dies ist nicht 100% genau. Erstens erlaubt die Lizenz das Weglassen einiger Dateien, wenn sie in der JRE neu verteilt werden, jedoch nicht die größten. Zweitens gibt es Open-Source-Implementierungen: OpenJDK, Apache Harmony, GCJ. Schließlich gibt es eine kommerzielle Java-Implementierung, die es Ihnen ermöglicht, Teile der Java-Bibliothek zu überspringen, wenn Sie Ihre App lizenzkonform packen (siehe meine Antwort unten). –