Si j'ai un fichier source Java (* .java) ou un fichier de classe (* .class), comment puis-je le convertir en fichier .exe?
J'ai également besoin d'un programme d'installation pour mon programme.
Si j'ai un fichier source Java (* .java) ou un fichier de classe (* .class), comment puis-je le convertir en fichier .exe?
J'ai également besoin d'un programme d'installation pour mon programme.
Réponses:
L'outil Java Packager compile, conditionne et prépare les applications Java et JavaFX pour la distribution. La commande javapackager est la version en ligne de commande.
- Documentation d'Oracle
L' javapackager
utilitaire est livré avec le JDK. Il peut générer des fichiers .exe avec le -native exe
drapeau, entre autres choses.
WinRun4j est un lanceur Java pour Windows. Il s'agit d'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 vm et les arguments du programme.
- Nom d'exécutable personnalisé qui apparaît dans le gestionnaire de tâches.
- Arguments JVM supplémentaires pour une utilisation de la mémoire plus flexible.
- Remplaçant d'icône intégré pour l'icône personnalisée.
- [plus de puces suivent]
- la page Web de WinRun4J
WinRun4J est un utilitaire open source. Il a de nombreuses fonctionnalités.
Emballe votre JAR, vos ressources et une machine virtuelle Java 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 GUI.
- packr README
packr est un autre outil open source.
JSmooth est un wrapper exécutable Java. Il crée des lanceurs Windows natifs (.exe standard) pour vos applications java. Cela rend le déploiement java beaucoup plus fluide et convivial, car il est capable de trouver toute machine virtuelle Java installée par lui-même.
- Site Web 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 en ligne de commande (idéal pour les scripts automatisés) qui vous permet de regrouper votre application Java (fichiers de classe), éventuellement avec ses ressources (comme GIF / JPG / TXT / etc), en un seul EXE Windows 32 bits compressé , qui s'exécute à l'aide de Java Runtime Environment de Sun. Les applications console et fenêtrées sont prises en charge.
- Site Web de JexePack
JexePack est un logiciel d'essai. Le paiement est requis pour une utilisation en production, et les fichiers exe créés avec cet outil afficheront des "rappels" sans paiement. De plus, la dernière version date de 2013.
InstallAnywhere permet aux développeurs de créer facilement des logiciels d'installation professionnels pour n'importe quelle plate-forme. Avec InstallAnywhere, vous vous adapterez rapidement aux changements de l'industrie, vous lancerez sur le marché plus rapidement et offrirez une expérience client attrayante. Et connaissez la vulnérabilité des composants OSS de votre projet avant l'expédition.
- Site Web d'InstallAnywhere
InstallAnywhere est un package commercial / d'entreprise qui génère des programmes d'installation pour les programmes Java. Il est probablement capable de créer des fichiers .exe.
Comme 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'informations sur ce sujet est l'article d'Excelsior " Convertir Java en EXE - Pourquoi, Quand, Quand Pas et Comment ".
Voir également l'article complémentaire " Meilleurs outils de conversion JAR vers EXE, gratuits et commerciaux ".
Launch4j est un outil multiplateforme pour encapsuler des applications Java distribuées sous forme de fichiers jars 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 groupée, et il est possible de définir des options d'exécution, comme la taille de segment initiale / maximale. L'encapsuleur offre également une meilleure expérience utilisateur grâce à une icône d'application, un écran de démarrage natif pré-JRE, un nom de processus personnalisé et une page de téléchargement Java au cas où le JRE approprié ne serait pas trouvé.
- Site web de Launch4j
MISE À JOUR: GCJ est mort. Il a été officiellement retiré du projet GCC en 2016. Même avant cela, il a été pratiquement abandonné pendant sept ans, et en tout cas il n'a jamais été suffisamment complet pour servir d'implémentation Java alternative viable.
Allez trouver un autre compilateur Java AOT.
GCJ: Le compilateur GNU pour Java peut compiler le code source Java en code machine natif, y compris les exécutables Windows.
Bien que tout en Java ne soit pas pris en charge sous GCJ, en particulier les composants GUI (voir Quelles sont les API Java prises en charge? Quelle est la prise en charge complète? Question de la FAQ ). Je n'ai pas beaucoup utilisé GCJ, mais d'après les tests limités que j'ai faits avec les applications de console, cela semble bien.
Un inconvénient de l'utilisation de GCJ pour créer un exécutable autonome est que la taille de l'EXE résultant peut être assez grande. Une fois, j'ai compilé une application de console triviale dans GCJ et le résultat était un exécutable d'environ 1 Mo. (Il peut y avoir des moyens de contourner ce problème à ma connaissance. Une autre option serait les programmes de compression exécutables.)
En termes d'installateurs open source, le système d'installation scriptable Nullsoft est un programme d'installation scriptable. Si vous êtes curieux, il existe des exemples fournis par les utilisateurs sur la façon 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 faire savoir, je n'ai jamais utilisé NSIS auparavant.)
Pour plus d'informations sur l'utilisation de NSIS pour installer des applications Java, veuillez consulter ma réponse à la question " Quelle est la meilleure façon de distribuer des applications Java? "
Vous pouvez créer un fichier batch avec le code suivant:
start javaw -jar JarFile.jar
et convertir le .bat en .exe en utilisant n'importe quel convertisseur .bat en .exe.
Nous utilisons Install4J pour créer des programmes d'installation pour les environnements Windows ou Unix.
Il est facilement personnalisable au point où vous souhaitez écrire des scripts pour des actions spéciales qui ne peuvent pas être effectuées avec des dialogues standard. Mais même si nous configurons des services Windows avec, nous n'utilisons que des composants standard.
Je pense que Launch4J est de la même entreprise (juste le lanceur - pas d'installation).
PS: malheureusement, je ne suis pas payé pour cette approbation. J'aime juste cet outil.
Le dernier Java Web Start a été amélioré pour permettre un bon fonctionnement hors ligne ainsi qu'une «installation locale». Cela vaut la peine d'être examiné.
EDIT 2018: Java Web Start n'est plus fourni avec les JDK les plus récents. Oracle pousse plutôt vers un modèle "déployer votre application localement avec un JRE inclus".
Si vous devez convertir l'intégralité de votre application en code natif, c'est-à-dire un EXE plus des DLL, il existe ExcelsiorJET . J'ai trouvé que cela fonctionne bien et j'ai fourni une alternative au regroupement 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 lui pour la distribution et l'exe peut même être iconifié. Bien que la taille de l'application augmente, elle garantit que l'application fonctionnera parfaitement même si l'utilisateur n'a pas installé de jre. Il garantit également que vous êtes en mesure de fournir le jre spécifique requis pour votre application sans que l'utilisateur n'ait à l'installer séparément. Mais malheureusement, java perd son importance. Son support multi-plateforme est totalement ignoré et l'application finale n'est prise en charge que pour Windows. Mais ce n'est pas un gros problème, si vous ne vous adressez qu'aux utilisateurs de Windows.
Vous pouvez également utiliser un traducteur java-to-c (par exemple, JCGO ) et compiler les fichiers C générés dans un fichier binaire natif (.exe) pour la plate-forme cible.
Je peux être pardonné 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 peut être compilé dans un fichier jar à partir de beaucoup d'IDE. Lorsque le programme est au format .jar, il peut s'exécuter sur plusieurs plates-formes au lieu de .exe qui ne s'exécuterait que dans un environnement très limité. Je suis pour l'idée que les programmes Java ne devraient pas être convertis en Exe, sauf si cela est 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, le convertisseur Jar2Exe le fait en silence et on peut également attacher des bibliothèques qui sont compilées avec l'application principale.