it-swarm.com.de

Wie bündele ich eine JRE mit Launch4j?

Ich habe Launch4J auf meinem Computer und es ist ein großartiges Programm. Eine der Funktionen, die mich interessieren, ist die Möglichkeit, eine JRE in der allgemeinen EXE-Datei zu bündeln. Ich kann jedoch keine Dokumentation finden, die beschreibt, wie dies getan wird.

Wie bündle ich eine JRE mit der EXE? Wo kann ich eine kompakte, tragbare JRE ausführen? Die Download-Links auf Oracle beziehen sich auf die Installationspakete.

69
CodeBunny

Nach einigen Versuchen bekomme ich endlich eine Problemumgehung, um die jre in meiner Anwendung zu bündeln:

Ich packe meine App als Zip-Datei mit den folgenden Ordnern:

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)

In der XML-Datei von launch4j konfiguriere ich die JRE wie folgt:

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

Der Trick dabei ist, dass der Pfad nicht zur Datei Java.exe führt. Der Pfad zur jre ist relativ zur Position der .exe und sollte auf einen Ordner vor der Java.exe-Datei verweisen

Der JRE-Ordner, den ich verwende, ist nur ein Kopieren und Einfügen aus dem JRE-Ordner, der auf einem Windows-System installiert ist.

73
Francisco Puga

Das gleiche Problem wie du Kumpel. Keine Sorge jetzt. Es ist alles mit maximaler Tiefe zu lösen, um zukünftige Lösungen zu lösen. Lösung, wie Sie Ihr [~ # ~] jre [~ # ~] für Ihr jar bündeln können, ohne dass der Benutzer Java oder nicht. Ihre Anwendung Java wird ausgeführt.

  1. Kopieren Sie die Ordner lib und bin aus Ihrem Ordner [~ # ~] jre [~ # ~] in Ihr Projekt dist ordner

jar to exe conversion

  1. öffnen Sie launch4j und geben Sie die folgende Einstellung ein. enter image description here

Der Trick ist, dass Sie den vollständigen Pfad zur Include-Datei javaw.exe angeben müssen.

Genießen!!!!

5
danielad

Ich habe Folgendes getan und es hat bei mir mit Launch4j 3.11 funktioniert:

  1. Erstellt einen neuen Ordner für meine Anwendung (zum Beispiel MyApp genannt).
  2. Kopierte die JAR-Datei aus dem Ordner Java project dist in die MyApp zusammen mit dem Ordner lib.
  3. In meinem Anwendungsordner MyApp wurde ein Ordner namens jre erstellt. Der Ordner MyApp enthält nun:
    • MyApp.jar
    • lib <- dies hat die Bibliotheken, die von meiner Java App benötigt werden.
    • jre
  4. Kopierte die Ordner bin und lib aus dem Ordner Java jre (C:\Programme (x86)\Java\jre7) nach MyApp\jre
  5. Wenn Sie in Launch4j alle erforderlichen Optionen festgelegt haben, setzen Sie den Pfad für das gebündelte JRE auf "jre".

    Launch4j JRE options

  6. Stellen Sie sicher, dass in den Suchoptionen "Nur private JDK-Laufzeiten verwenden" ausgewählt ist.
3
Ahmed Awad

Ein funktionierendes Beispiel für die Verwendung von Launch4J zum Bündeln einer Java) - Anwendung mit einer bestimmten JRE finden Sie unter https://github.com/vZome/vzome/blob/master/desktop/ platform/windows/README.md . Diese bestimmte Distribution ist konfiguriert für requirevZome um die gebündelte JRE anstatt einer auf der Zielplattform gefundenen JRE zu verwenden.

Hoffe das hilft.

0
David

Ich habe das gerade getan. Beschreiben Sie oben deutlich die Methode zum Bündeln von jre.

Hier teile ich nur eine Erfahrung, die ich gekämpft habe. Wenn Sie eine Installer-Exe nach der Wrapper-Exe von launch4j erstellen möchten, beachten Sie den Dateipfad für launch4j und jre. Dies ist mein Weg, auf dem ich meine Probleme gelöst habe:

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

launch4j, bin und resources befinden sich auf derselben Ebene.

0
Michelle Mmu