Comment convertir mon programme Java en fichier .exe? [fermé]

500

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.

Waseem
la source
1
hack simple pour les applets: écrire un code C avec main et un appel à la fonction "system" comme system ("appletviewer java_src_file");
Madhusoodan P
1
Est-ce que le .exe fonctionne dans le système Windows sans JRE?
Arpit Agarwal
Juste pour être complet (je ne l'ai pas essayé moi-même parce que nous avions besoin d'exe wrapper, pas de programme d'installation): les packages d'installation peuvent également être créés à l'aide de javapackager (voir docs.oracle.com/javase/8/docs/technotes/guides/deploy/… ) . Pour créer le programme d'installation EXE ou MSI, en outre Inno Setup ou WiX doivent être téléchargés et installés.
anre
Peut-être que NSIS aide également; nsis.sourceforge.net/Java_Launcher
baris.aydinoz

Réponses:

324

javapackager

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' javapackagerutilitaire est livré avec le JDK. Il peut générer des fichiers .exe avec le -native exedrapeau, entre autres choses.

WinRun4J

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.

packr

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

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

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

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.

Fichiers JAR exécutables

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 .


Pour plus d'informations

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 ".

Geai
la source
Il vaut mieux utiliser eclipse et Jsmooth. Suivez ces étapes regilanj.wordpress.com/2017/11/19/…
Maria Irudaya Regilan J
Est-ce que tout cela fonctionnerait pour ma situation? stackoverflow.com/questions/56674075/…
gunslingor
Essayez ceci: javaexe.free.fr/html/en/JavaExe.html
CamelTM
112

Launch4j

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

the.duckman
la source
35

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? "

coobird
la source
2
Le projet est en fait mort, comme je peux le voir. Pas de nouvelles sur la page principale
Vladislav Rastrusny
Le développement Java GNU a quasiment migré vers OpenJDK, car les sources non-Oracle n'ont pas pu accéder au TCK pour validation.
Thorbjørn Ravn Andersen
25

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.

MultiplyByZer0
la source
2
Un bon wrapper apporte un JRE ou l'installe si nécessaire et gère les situations d'erreur.
Thorbjørn Ravn Andersen
16

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.

  • installateur + lanceur
  • windows ou unix
  • scriptable en Java
  • tâche de fourmi
  • de nombreux panneaux et actions standard personnalisables
  • inclut ou télécharge éventuellement un JRE
  • peut également lancer des services Windows
  • plusieurs langues

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.

Stroboskop
la source
15

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".

Thorbjørn Ravn Andersen
la source
Apparemment, la sécurité de JWS a été tellement renforcée qu'elle nécessite beaucoup plus d'efforts qu'auparavant pour fonctionner. Cela pourrait néanmoins être utile pour les installateurs.
Thorbjørn Ravn Andersen
9

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.

mdma
la source
Vraiment cher, cependant.
Mordechai
9

IMHO JSmooth semble faire du très bon travail.

jussij
la source
6

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.

Pratanu Mandal
la source
5

Vous pouvez utiliser Janel . Ce dernier fonctionne comme un lanceur d'applications ou un lanceur de services (disponible à partir de 4.x).

L. BIZE
la source
4

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.

Ivan Maidanski
la source
2
Je suis très incrédule quant à l'efficacité de cette méthode. Je devrais le voir pour le croire (pensez au fait que la plupart du code Java est des appels d'API à JRE, et tout cela n'est pas présent sur C, peu importe les différences dans la façon dont le langage fonctionne).
Camilo Martin
3

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.

ErrorNotFoundException
la source
Le fait est que la puissance de Java est la portabilité, mais beaucoup de gens ont juste besoin d'un exe de base pour Windows. Personnellement, j'adore le concept de Java ... mais j'aimerais distribuer quelque chose que mes utilisateurs pourraient exécuter, sans avoir à télécharger un JRE.
Balmipour
2

Vous pouvez convertir jar en exe en utilisant jar2exe . Cependant, vous devez acheter le logiciel. Si vous avez besoin d'un logiciel open source, je suggère JSmooth .

Raghunandan
la source