Comment combiner un JRE avec Launch4j?

j'ai Launch4J sur mon ordinateur et c'est un excellent programme. Une de ses caractéristiques qui m'intéresse est la capacité de regrouper un JRE dans le général .EXE. Cependant, je ne trouve aucune documentation qui décrit comment faire cela.

comment mettre un JRE avec L'EXE? En plus, Où puis-je trouver un JRE compact et portable pour courir? Les liens de téléchargement sur Oracle sont pour les paquets installateurs.

56
demandé sur CodeBunny 2011-08-16 01:39:04

5 réponses

après quelques tentatives, j'obtiens enfin une solution de contournement pour regrouper les jre dans ma demande:

j'empaquette mon application comme un 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 n'est pas à la java.EXE. Le chemin vers la jre est relatif à la position de la .exe et il doit pointer vers un dossier avant Java.fichier exe

le dossier jre que j'utilise est juste une copie-coller du dossier jre installé sur un système de windows.

59
répondu Francisco Puga 2011-09-28 10:50:17

la seule façon de regrouper un JRE était d'utiliser Launch4J et Inno Setup Compiler.

tout d'abord, créez un dossier 'jre6' (par exemple) dans le même répertoire que votre fichier de sortie (.EXE.)

copiez ensuite la JRE de votre système dans votre dossier jre6.

ensuite, vous ouvrez Launch4J et définissez le 'Bundled JRE path' - il suffit de taper: jre6 . Puis cliquez sur le bouton Construire (évidemment, après avoir entré tous les autres paramètres - mais le la seule valeur que vous devez entrer dans l'onglet 'JRE' est la valeur 'Bundled JRE path'.)

Je m'attendais à ce que cela fonctionne, mais si déplacer le .exe à un nouvel emplacement (de sorte qu'il n'est plus co-localisé avec votre dossier jre6) vous obtenez le "Cette application a été configurée pour utiliser un environnement d'exécution Java groupé, mais le temps d'exécution est manquant ou corrompu" erreur lorsque vous essayez d'exécuter l'application...

j'ai joué avec ça toute la journée et là Je ne pouvais pas obtenir Launch4J pour inclure le JRE dans le .EXE. Vraiment mauvais à mon avis, que leur documentation ne semble pas allusion à cette question.

donc ce que j'ai fait pour résoudre était D'utiliser Inno Setup Compiler. Cette application est utilisée pour envelopper votre .exe comme un fichier D'installation Windows. J'ai donc ajouté un paramètre au script ISC qui copie le JRE dans le paquet de l'installateur. La ligne que j'ai ajoutée au script (dans la section [Files]) était:

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs

...un petit contournement, mais ça a fait l'affaire.

Répétez toutes les étapes ci-dessus, et vous devriez être triés.

réponse tirée de ici ..user1617737

11
répondu Ridzuan Adris 2017-05-23 12:03:02

le même problème que toi. Pas de soucis maintenant. C'est tout résoudre avec la profondeur maximale pour résoudre solution future. Solution comment vous pouvez regrouper vos JRE pour votre jar sans que l'utilisateur ait besoin d'installer java ou non. Votre application java s'exécute.

  1. copier lib et bin dans votre dossier JRE dans votre dossier "project dist

jar to exe conversion

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

le truc est que vous devez donner le chemin complet vers le javaw inclus.EXE.

Profitez-en!!!!

4
répondu danielad 2018-01-03 11:01:27

j'ai fait ce qui suit et cela a fonctionné pour moi en utilisant ver Launch4j 3.11:

  1. a créé un nouveau dossier pour mon application (appelé par exemple MyApp).
  2. a copié le fichier jar à partir du dossier java project dist vers MyApp avec le dossier lib.
  3. a créé un dossier appelé jre dans mon dossier D'application MyApp donc maintenant le dossier MyApp contient:
    • MyApp.jar
    • lib < - this dispose des bibliothèques nécessaires à mon application java.
    • jre
  4. copié les dossiers bin et lib à partir du dossier java jre (C:\Program Fichiers (x86)\Java\jre7) à MyApp\jre
  5. dans le Launch4j après avoir défini toutes les options requises, puis Chemin JRE groupé vers" jre "

    Launch4j JRE options

  6. assurez-vous que dans les options de recherche "Seulement utiliser des temps d'exécution JDK privés" est sélectionné.
2
répondu Ahmed Awad 2018-10-01 16:42:48

le jre se trouve généralement dans votre dossier SDK. Oui les liens en ligne sont installateurs, mais une fois qu'il installe, le JRE est maintenant situé sur votre disque local. La Mine est située au 151920920"

${jdk folder}\jre

les pièces dont vous n'avez pas besoin de la JRE peuvent probablement être retirées manuellement si vous le souhaitez (Je ne suis pas sûr de ce qui est disponible en ligne).

-1
répondu hbhakhra 2011-08-15 22:04:39