Est-il possible de transformer une application Java en un package autonome qui s'exécute "prêt à l'emploi"? L'utilisateur final ne doit pas être obligé d'installer de Java JRE, ni le programme d'installation doit contenir un JRE et l'installer pour l'utilisateur.
La distribution finale devrait contenir un exécutable natif (si tout va bien un pour chacun de Windows, Mac et Linux) avec les fichiers de données réguliers et tous les fichiers JAR supplémentaires si nécessaire. Je ne recherche pas spécifiquement une solution "un fichier" - j'aimerais en fait que les fichiers de données ne soient pas obscurcis.
Comment cela peut-il être fait?
la source
Pour Mac, consultez la documentation Oracle pour empaqueter une application Java pour Mac . Ils ont configuré Java 7 pour que vous puissiez regrouper le runtime dans un ensemble d'applications contenant vos fichiers jar (.app est un dossier vraiment exécutable), qui est requis pour la distribution sur le Mac App Store. Fondamentalement, le bundle .app fait essentiellement la même chose que ce que suggère la réponse JAVA_HOME d'Eren, mais il est conditionné comme une application Mac "native".
Pour une distribution sans le Mac App Store, vous pouvez vous passer de ne pas signer l'application, en disant à vos utilisateurs Mountain Lion qu'ils peuvent contourner Gatekeeper en cliquant avec le bouton droit (ou ctrl + clic) sur votre application et en cliquant sur "Ouvrir" quand ils ouvrez d'abord l'application. Cela les avertira toujours que l'application n'est pas signée, mais cela leur permettra quand même de l'ouvrir, puis leur permettra de double-cliquer sur l'application pour les ouvertures suivantes.
(note latérale: vous pouvez également vous en tirer avec le marquage de scripts shell de type Linux comme exécutable, puis construire un bundle .app autour de cela. NetBeans le fait sur Mac et Linux, mais sans JRE / JDK fourni)
la source