Question

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.

Était-ce utile?

La solution

javapackager

  

L'outil Java Packager 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.

     

- Documentation 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

  

WinRun4j est un programme de lancement 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 d'exécutable personnalisé qui apparaît dans le gestionnaire de tâches.
  •   
  • Arguments JVM supplémentaires pour une utilisation plus flexible de la mémoire.
  •   
  • Remplacement d'icône intégré pour l'icône personnalisée.
  •   
  • [d'autres points de balle suivent]
  •   
     

- Page Web de WinRun4J

WinRun4J est un utilitaire open source. Il possède de nombreuses fonctionnalités.

packr

  

Conditionne 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 mieux adapté aux applications graphiques.

     

- fichier 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. Le déploiement de Java est beaucoup plus simple et convivial, car il est capable de trouver lui-même n’importe quelle machine virtuelle Java installée.

     

- 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 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 unique compressé Windows EXE 32 bits, exécuté à l’aide de l’environnement d’exécution Java de Sun. La console et les applications fenêtrées sont prises en charge.

     

- Site Web 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 les "rappels". sans paiement. En outre, la dernière version date de 2013.

InstallAnywhere

  

InstallAnywhere permet aux développeurs de créer facilement un logiciel d’installation professionnel pour n’importe quelle plate-forme. 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 d'InstallAnywhere

InstallAnywhere est un package commercial / 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.

Fichiers JAR exécutables

Au lieu des fichiers .exe, vous pouvez créer un fichier JAR qui s'exécute automatiquement lorsque vous double-cliquez dessus, par ajout d'un point d'entrée au manifeste JAR .

Pour plus d'informations

L’article d’Excelsior, intitulé Convert, constitue une excellente source d'informations sur ce sujet. De Java à EXE: pourquoi, quand, quand et comment

.

Voir aussi l'article associé Meilleurs outils de conversion de JAR à EXE, gratuits et commerciaux ".

Autres conseils

Launch4j

  

Launch4j est un outil multiplateforme qui permet d'encapsuler des applications Java 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 serait pas 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é. En tout état de cause, il n'a jamais été suffisamment complet pour pouvoir être utilisé comme une implémentation Java viable.

     

Recherchez 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 ne soit pas pris en charge dans Java par Java, notamment les composants de l’interface graphique (voir Quelles API Java sont prises en charge? Le support est-il complet? question de la 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.

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 se peut que je ne sache pas comment contourner ce problème. Une autre option serait les programmes de compression exécutables.)

En ce qui concerne les installateurs à code source libre, le système d’installation scriptable Nullsoft est un programme d’installation scriptable. Si vous êtes curieux, il existe des exemples d'utilisateurs pour savoir comment détecter la présence d'un JRE. et 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, consultez la page ma réponse pour la question " Quel est le meilleur moyen de distribuer des applications Java? "

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 créer des programmes d'installation sous Windows ou Unix. environnements.

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.

  • installateur + lanceur
  • windows ou unix
  • scriptable en Java
  • tâche ant
  • 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 appartient à 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 Java Web Start a été améliorée pour permettre un bon fonctionnement hors connexion ainsi que le paramètre " installation locale " ;. Cela vaut la peine d’être examiné.

EDIT 2018: Java Web Start n'est plus fourni avec les derniers JDK. Oracle tente de "déployer votre application localement avec un JRE inclus". modèle à la place.

Si vous devez convertir l'intégralité de votre application en code natif, c'est-à-dire un fichier EXE plus des DLL, ExcelsiorJET . J'ai trouvé que cela fonctionnait bien et constituait une alternative au regroupement d'un JRE.

IMHO JSmooth semble faire un très bon travail.

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 la distribution 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 permet également 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 comme lanceur d’applications ou de services (disponible à partir de la version 4.x).

Vous pouvez également utiliser un traducteur java-to-c (par exemple, JCGO ) et compilez les fichiers C générés dans un fichier binaire natif (.exe) pour la plate-forme cible.

On peut me pardonner de ne pas convertir 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 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 les programmes Java ne soient pas 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, le convertisseur Jar2Exe le fait en silence et vous pouvez également attacher des bibliothèques compilées avec l'application principale.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top