web-dev-qa-db-fra.com

Comment regrouper un JRE avec Launch4j?

J'ai Launch4J sur mon ordinateur et c'est un excellent programme. L'une de ses fonctionnalités qui m'intéresse est la possibilité de regrouper un JRE dans le fichier .EXE général. Cependant, je ne trouve aucune documentation décrivant comment procéder.

Comment regrouper un JRE avec l'EXE? De plus, où puis-je obtenir un JRE compact et portable à exécuter? Les liens de téléchargement sur Oracle sont pour les packages d'installation.

69
CodeBunny

Après quelques tentatives, j'obtiens enfin une solution de contournement pour regrouper le jre dans mon application:

Je conditionne mon application sous forme de fichier Zip avec les dossiers suivants à l'intérieur:

containerFolder
|- jre
      |-bin (in bin there is Java.exe)
      |-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)

Dans le fichier xml de launch4j je configure le jre comme ceci:

<jre>
    <path>../jre</path>
    <opt>-DgvSIG.confDir=../cfg</opt>
</jre>

L'astuce ici est que le chemin d'accès n'est pas au fichier Java.exe. Le chemin d'accès au jre est relatif à la position du .exe et il doit pointer vers un dossier avant le fichier Java.exe

Le dossier jre que j'utilise est juste un copier-coller du dossier jre installé sur un système Windows.

73
Francisco Puga

Le même problème que toi, mon pote. Pas de soucis maintenant. Tout est résolu avec la profondeur maximale pour résoudre la future solution. Solution comment vous pouvez regrouper votre [~ # ~] jre [~ # ~] pour votre bocal sans que l'utilisateur ait besoin d'installer Java ou pas. Votre application Java s'exécutera.

  1. Copiez les dossiers lib et bin de votre dossier [~ # ~] jre [~ # ~] vers votre projet dossier dist

jar to exe conversion

  1. ouvrez launch4j et entrez le paramètre suivant. enter image description here

L'astuce consiste à donner le chemin d'accès complet au fichier javaw.exe inclus.

Prendre plaisir!!!!

5
danielad

J'ai fait ce qui suit et cela a fonctionné pour moi en utilisant la version Launch4j 3.11:

  1. Création d'un nouveau dossier pour mon application (appelé par exemple MyApp).
  2. Copiez le fichier jar du dossier dist Java project dist vers MyApp avec le dossier lib.
  3. J'ai créé un dossier appelé jre dans mon dossier d'application MyApp. Le dossier MyApp contient maintenant:
    • MyApp.jar
    • lib <- cela a les bibliothèques nécessaires à mon Java app.
    • jre
  4. Copié les dossiers bin et lib de Java jre (C:\Program Files (x86)\Java\jre7) vers MyApp\jre
  5. Dans le Launch4j après avoir défini toutes les options requises, définissez le chemin JRE fourni sur "jre"

    Launch4j JRE options

  6. Assurez-vous que dans les options de recherche "Utiliser uniquement les runtimes JDK privés" est sélectionné.
3
Ahmed Awad

Un exemple pratique d'utilisation de Launch4J pour regrouper une Java avec un JRE spécifique peut être trouvée sur https://github.com/vZome/vzome/blob/master/desktop/ platform/windows/README.md . Cette distribution particulière est configurée pour nécessitevZome pour utiliser le JRE intégré plutôt que tout JRE trouvé sur la plate-forme cible.

J'espère que cela t'aides.

0
David

Je viens de faire ça. Décrivez ci-dessus clairement la méthode de regroupement de jre.

Ici, je partage juste une expérience que j'ai eu du mal. Si vous souhaitez créer un exe d'installation après l'exe wrapper créé par launch4j, faites attention au chemin du fichier pour launch4j et jre. C'est mon chemin que j'ai utilisé pour résoudre mes problèmes:

launch4j, bin/jre, resources/bin/jre.

launch4j, bin et resources sont au même niveau.

0
Michelle Mmu