70 votes

Intégrer un JRE dans un exécutable Windows?

Supposons que je souhaite distribuer une application Java.

Supposons que je veux le distribuer comme un seul exécutable. Je pourrais facilement construire un .jar avec à la fois l'application et toutes ses dépendances externes dans un seul fichier (avec quelques Ant le piratage).

Supposons maintenant que je veux le distribuer comme une .fichier exe sous Windows. C'est assez facile, compte tenu de l'nice outils (tels que Launch4j et les goûts).

Mais supposons maintenant que je ne veux pas dépendre de l'utilisateur final avoir le droit JRE (ou tout JRE à tous pour cette question) installé. Je souhaite distribuer un JRE avec mon application, et mon application doit s'exécuter sur ce JRE. Il est assez facile de créer un programme d'installation de Windows exécutable, et incorporer un dossier avec tous les JRE fichiers qu'il contient. Mais alors je suis la distribution d'un programme d'installation et pas un seul fichier app.

Est-il possible d'intégrer à la fois l'application, et un JRE, dans une .exe fichier agissant en tant que le lanceur d'application (et non pas comme un programme d'installation)?

24voto

i_home Points 104

Essayez d’utiliser les boîtes à outils Avian et ProGuard . Avian permet d'intégrer une machine virtuelle légère dans votre application. Linux, MacOS, Windows et iOS sont pris en charge. Et ProGuard vous permet de réduire le fichier JAR volumineux pour vous préparer à l’intégrer.

16voto

Andrejs Points 4235

Il y a un nouvel outil qui fait ça: Packr
https://github.com/libgdx/packr

7voto

metismo Points 367

Quelques options autour de, dans le commerce, c'est très bien:

http://www.excelsior-usa.com/jet.html

Il y a deux clé pour ouvrir les options de source de GCJ et VMKit

http://gcc.gnu.org/java/ et http://vmkit.llvm.org/

D'autres plus longues routes se comprennent IKVM.NET:

http://www.ikvm.net/

Ce qui est une .NET JVM qui peut être compilé statiquement à un EXE

4voto

Jonik Points 18905

Est-il possible d'intégrer à la fois l'application et un JRE, dans une .exe fichier agissant en tant que le lanceur d'application (et non pas comme un programme d'installation)?

Si un outil commercial est ok pour vous, install4j résout ce problème très facilement (voir ses "Caractéristiques" à la page). Il peut générer à la fois les lanceurs d'applications et les installateurs.

Je déteste me répéter trop, afin de vérifier par exemple, plus tôt cette réponse où je l'ai branché (comme le programme d'installation du générateur, mais il n'a pas beaucoup de différence ici).

Résumé / bottom line: install4j peut créer des indigènes .exe lanceurs qui absolument ne pas dépendre d'une pré-installé JRE (ou tout autre libs), et il offre des options flexibles pour le regroupement (et de détection) Jre.

1voto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X