Si j'ai un fichier source Java (* .Java) ou un fichier de classe (* .class), comment puis-je le convertir en fichier .exe?
J'ai aussi besoin d'un installateur pour mon programme.
L'outil de packaging Java compile, empaquete et prépare les applications Java et JavaFX en vue de leur distribution. La commande javapackager est la version en ligne de commande.
- la documentation d'Oracle
L'utilitaire javapackager
est fourni avec le JDK. Il peut générer des fichiers .exe avec le drapeau -native exe
, entre autres.
WinRun4j est un lanceur Java pour Windows. C'est une alternative à javaw.exe et offre les avantages suivants:
- Utilise un fichier INI pour spécifier le chemin de classe, la classe principale, les arguments de vm, les arguments de programme.
- Nom de l'exécutable personnalisé qui apparaît dans le gestionnaire de tâches.
- JVM supplémentaire plaide pour une utilisation plus flexible de la mémoire.
- Remplacement d'icône intégré pour une icône personnalisée.
- [d'autres points de balle suivent]
- la page web de WinRun4J
WinRun4J est un utilitaire open source. Il possède de nombreuses fonctionnalités.
Programmez votre JAR, vos actifs et une JVM pour la distribution sur Windows, Linux et Mac OS X, en ajoutant un fichier exécutable natif pour le faire apparaître comme une application native. Packr est le plus approprié pour les applications graphiques.
- packr README
packr est un autre outil open source.
JSmooth est un wrapper Java exécutable. Il crée des lanceurs Windows natifs (.exe standard) pour vos applications Java. Le déploiement de Java est beaucoup plus simple et convivial, car il est capable de trouver tout Java VM installé par lui-même.
- Le site de JSmooth
JSmooth est open source et possède des fonctionnalités, mais il est très ancien. La dernière version date de 2007.
JexePack est un outil de ligne de commande (idéal pour les scripts automatisés) qui vous permet de conditionner votre application Java (fichiers de classe), éventuellement avec ses ressources (telles que GIF/JPG/TXT/etc), dans un seul fichier EXE Windows compressé 32 bits, exécuté à l’aide du logiciel Java de Sun Environnement d'exécution. La console et les applications fenêtrées sont supportées.
- Le site de JexePack
JexePack est une version d'évaluation. Le paiement est requis pour une utilisation en production, et les fichiers exe créés avec cet outil affichent des "rappels" sans paiement. En outre, la dernière version date de 2013.
InstallAnywhere permet aux développeurs de créer facilement un logiciel d'installation professionnel pour toutes les plateformes. Avec InstallAnywhere, vous vous adapterez rapidement aux changements du secteur, accéderez plus rapidement au marché et vous offrirez une expérience client attrayante. Et connaissez la vulnérabilité des composants OSS de votre projet avant d’expédier.
- Site web de InstallAnywhere
InstallAnywhere est un package commercial/d'entreprise qui génère des programmes d'installation pour les programmes basés sur Java. Il est probablement capable de créer des fichiers .exe.
En guise d'alternative aux fichiers .exe, vous pouvez créer un fichier JAR qui s'exécute automatiquement lorsque vous double-cliquez dessus, en ajoutant un point d'entrée au manifeste JAR .
Une excellente source d’information sur ce sujet est l’article d’Excelsior " Convertir Java en EXE - Pourquoi, quand, quand et comment ".
Voir aussi l'article d'accompagnement " Meilleurs outils de conversion de JAR à EXE, gratuit et commercial ".
Launch4j est un outil multiplateforme qui permet d'encapsuler Java applications distribuées sous forme de fichiers jar dans des exécutables natifs Windows légers. L'exécutable peut être configuré pour rechercher une certaine version de JRE ou utiliser une version fournie. Il est également possible de définir des options d'exécution, telles que la taille initiale/maximale du segment de mémoire. Le wrapper offre également une meilleure expérience utilisateur grâce à une icône d'application, à un écran de démarrage pré-JRE natif, à un nom de processus personnalisé et à une page de téléchargement Java au cas où le JRE approprié ne pourrait pas être trouvé.
- Le site de Launch4j
UPDATE: GCJ est mort. Il était officiellement supprimé du projet GCC en 2016. Même avant cela, il avait été pratiquement abandonné pendant sept ans et, en tout cas, il n'était jamais suffisamment complet pour servir d'implémentation alternative viable Java.
Allez trouver un autre compilateur Java AOT.
GCJ: Le GNU compilateur pour Java == peut compiler le code source Java en code machine natif, y compris les exécutables Windows.
Bien que tout ce qui est contenu dans Java ne soit pas pris en charge par GCJ, en particulier par les composants de l'interface graphique (voir Quelles sont les API Java gérées? À quel point le support est-il complet? question de FAQ ). Je n'ai pas beaucoup utilisé GCJ, mais d'après les tests limités que j'ai effectués avec les applications de console, cela semble aller.
L'un des inconvénients de l'utilisation de GCJ pour créer un fichier exécutable autonome est que la taille du fichier EXE résultant peut être assez grande. Une fois, j'ai compilé une application console triviale dans GCJ et le résultat était un exécutable d'environ 1 Mo. (Il existe peut-être des solutions à ce problème que je ne connais pas. Une autre option serait les programmes de compression exécutables.)
En ce qui concerne les installateurs open-source, le Nullsoft Scriptable Install System est un programme d’installation scriptable. Si vous êtes curieux, il existe exemples fournis par les utilisateurs sur la manière de détecter la présence d’un JRE et de l’installer automatiquement si le JRE requis n’est pas installé. (Juste pour vous dire que je n’avais jamais utilisé NSIS auparavant.)
Pour plus d'informations sur l'utilisation de NSIS pour l'installation d'applications Java, reportez-vous à ma réponse pour la question " Quel est le meilleur moyen distribuer Java applications? "
Vous pouvez créer un fichier de commandes avec le code suivant:
start javaw -jar JarFile.jar
et convertissez le fichier .bat en fichier .exe à l'aide de n'importe quel convertisseur .bat en fichier .exe.
Nous utilisons Install4J pour construire des installateurs pour les environnements Windows ou Unix.
Il est facilement personnalisable jusqu'au point où vous souhaitez écrire des scripts pour des actions spéciales impossibles à effectuer avec des dialogues standard. Mais même si nous configurons des services Windows avec ce dernier, nous n’utilisons que des composants standard.
Je pense que Launch4J est de la même société (juste le lanceur - pas d’installateur).
PS: Malheureusement, je ne suis pas payé pour cet endossement. J'aime juste cet outil.
La dernière version de Java Web Start a été améliorée pour permettre un bon fonctionnement hors connexion ainsi que pour permettre une "installation locale". Cela vaut la peine de regarder.
EDIT 2018: Java Web Start n'est plus fourni avec les derniers JDK. Oracle préconise plutôt le modèle "déployez localement votre application avec un JRE inclus".
IMHO JSmooth semble faire un très bon travail.
Si vous devez convertir l’ensemble de votre application en code natif, c’est-à-dire un fichier EXE plus des DLL, il existe ExcelsiorJET . J'ai trouvé que cela fonctionnait bien et fournissait une alternative à l'intégration d'un JRE.
Je dirais que launch4j est le meilleur outil pour convertir un code source Java (.Java) en fichier .exe. Vous pouvez même regrouper un jre avec celui-ci pour le distribuer et l'exe peut même être iconifié. Bien que la taille de l'application augmente, cela garantit que l'application fonctionnera parfaitement même si l'utilisateur ne dispose pas d'un jre. Il vous assure également que vous êtes en mesure de fournir le jre spécifique requis pour votre application sans que l'utilisateur ait à l'installer séparément. Mais malheureusement, Java perd de son importance. Son support multi-plateforme est totalement ignoré et l'application finale n'est prise en charge que par Windows. Mais ce n'est pas grave, si vous ne vous adressez qu'aux utilisateurs de Windows.
Vous pouvez utiliser Janel . Ce dernier fonctionne en tant que lanceur d’applications ou de services (disponible à partir de la version 4.x).
Vous pouvez également utiliser un traducteur Java-c (par exemple, JCGO ) et compiler les fichiers C générés dans un fichier binaire natif (.exe) pour la plate-forme cible.
On peut me pardonner d’être contre la conversion d’un programme Java en une application .exe et j’ai mes raisons. le principal étant qu'un programme Java puisse être compilé dans un fichier jar à partir de nombreux IDE. Lorsque le programme est au format .jar, il peut s'exécuter sur plusieurs plates-formes, contrairement à .exe, qui s'exécute uniquement dans un environnement très limité. Je suis pour l'idée que Java Les programmes ne devraient pas être convertis au format Exe à moins que ce ne soit très nécessaire. On peut toujours écrire des fichiers .bat qui exécutent le programme Java alors qu’il s’agit d’un fichier jar.
s'il est vraiment nécessaire de le convertir en exe, Jar2Exe converter le fait en silence et vous pouvez également attacher des bibliothèques compilées avec l'application principale.