Wie erstelle ich ein Windows-Installationsprogramm für eine Java-JAR-Datei?

Nov 28 2020

Ich möchte ein Windows-Installationsprogramm für meine JAR-Datei erstellen. Ich möchte jre / jdk nicht auf dem Zielcomputer installieren müssen, auf dem ich bereitstellen möchte.

Ich habe jpackage (Teil von Java 14) ausprobiert und es hat bei mir nicht funktioniert. Ich habe den folgenden Befehl ausprobiert:

jpackage --input target/ --name my_pkg --main-jar NtbnsProj.jar --main-class myJFrame --type exe --java-options '--enable-preview'

Es generiert eine my_pkg-1.0.exe, aber ich kann sie nicht zum Laufen bringen.

An diesem Punkt bin ich bereit, auch Tools von Drittanbietern auszuprobieren. Ich habe install4j ohne Erfolg ausprobiert. Eine andere Website, die ich gefunden habe, soll install4j mit Inno Setup Compiler verwenden. Das war komplizierter und hat auch nicht funktioniert. Ich dachte, vielleicht könnte WiX Toolset funktionieren.

Wenn jemand Schritt für Schritt Anweisungen geben könnte, insbesondere wenn die Lösung install4j umfasst, da es viele verschiedene Schritte gibt, in denen Sie etwas verpassen können. Ich habe eine neuere Version von install4j verwendet, die nicht zu den Online-Tutorials und -Videos passte. Die Menüauswahl hat sich erheblich geändert. Vielleicht muss ich eine ältere Version von install4j verwenden.

Siehe meinen verwandten Artikel: Wie packe ich eine Java-JAR-Datei, um sie auf einem Mac ohne installierte JRE auszuführen?

Antworten

1 DuncG Nov 28 2020 at 22:31

Überprüfen Sie, ob Ihre App direkt ausgeführt wird, und beheben Sie dann alle Probleme, bevor Sie fortfahren:

java -cp NtbnsProj.jar myJFrame 

Es sieht so aus, als hätte jpackagees funktioniert und Ihr Installationsprogramm generiert my_pkg-1.0.exe. Wenn Sie ausführen, my_pkg-1.0.exeüberprüfen Sie, ob Sie diese Datei haben, und führen Sie sie dann aus:

C:\Program Files\my_pkg\my_pkg.exe

Wenn dies fehlschlägt, führen Sie jpackage mit zusätzlichen Argumenten erneut aus --win-console --app-version 1.1. Dies wird my_pkg-1.1.exebei aktivierter Konsole generiert . Bei einer Neuinstallation und Ausführung wird C:\Program Files\my_pkg\my_pkg.exemöglicherweise eine nützliche Fehlermeldung angezeigt, die angibt, was Ihr eigentliches Problem ist.

Wenn Sie nicht --app-versionjedes Mal ein Upgrade durchführen , aktualisiert Windows die vorhandene Version 1.0 NICHT, oder Sie müssen die Installation deinstallieren, bevor Sie eine Neuerstellung derselben Version erneut anwenden my_pkg-1.0.exe. Es läuft und stoppt ohne Vorwarnung.

In diesem Beitrag erfahren Sie, wie Sie App-Ver automatisch einstellen.

macdays Dec 03 2020 at 07:31

Ich habe es zum Laufen gebracht! @DuncG war sehr hilfreich bei der Beantwortung meiner Frage. Ich hatte eine Reihe zusätzlicher Dateien in dem Verzeichnis, in dem sich die JAR-Datei befand, also habe ich gerade ein neues Verzeichnis erstellt und nur NtbnsProj.jar darin abgelegt. Ich habe dann den folgenden Befehl ausgeführt:jpackage --name Test --input . --main-jar NtbnsProj.jar