Ich habe ein einfaches Java-Projekt, das externe Jars benötigt. Ich baue dies mit Netbeans und nach dem Befehl Clean and Build kann ich im Verzeichnis dist folgende Struktur finden:
%Vor%typisch würde ich sagen.
Nun möchte ich meinApp.jar mit abhängigen Bibliotheken als eine Exe verteilen. Ist das möglich? Ich versuche Launch4J zu verwenden. In der GUI erstelle ich die Konfigurationsdatei, es gibt einige Optionen im cp Abschnitt
%Vor%aber es scheint Klassenpfad zu sein, und es ist der einzige Ort, an dem ich mich auf meine zusätzlichen Gläser beziehen kann.
Nachdem exe Datei erstellt wurde, kann ich keine abhängigen libs in der exe finden (exe kann mit winrar geöffnet werden) und somit stürzt meine Anwendung ab.
Wie kann ich die EXE-Datei dann richtig machen?
Danke für Ihre Hilfe.
Da es oft nicht möglich ist, das Problem zu lösen, habe ich es auf StackOverflow veröffentlicht ... und ziemlich bald nach der Veröffentlichung der Frage bekam ich eine Idee.
Die Antwort auf meine Frage lautet also:
Legen Sie alle abhängigen Gläser in ein Hauptglas.
Ich brauchte einige Zeit, um Informationen zu finden, wie ich das machen kann.
Um Menschen zu helfen, habe ich beschlossen, detaillierte Anweisungen hier zu veröffentlichen - sie basieren auf Netbeans 7.4.
Folgender Artikel aus Ссылка Ich habe das Ameisen-Skript erstellt, das eine Ein-Jar-App für mich erstellt. Ich könnte dann exe manuell über Launch4J
Ich entschied dann, dass ich mehr automatisierte Aufgabe will, und ich tat das, Ant baut exe für mich (über Launch4J)
Dann wurde mir klar, dass ich vor meiner automatisierten Aufgabe (in Punkt 2) "clean and build" machen muss / Ich entschied, dass ich clean und build automatisch vor der exe build machen wollte
Wenn ich alles zusammenfüge, füge ich mein Ameisenbau-Skript an, das aus den Punkten 1,2,3 besteht:
Sie müssen die Datei build.xml bearbeiten und den Inhalt, der vor dem End-Tag "project" gefunden wurde, einfügen %Vor%
Klicken Sie dann in Netbeans mit der rechten Maustaste auf die Datei build.xml und wählen Sie: Ziel ausführen / Andere Ziele / package-for-launch4j
exe-Datei ist im exe-Ordner bereit: -)
Putting verschiedene Links von Orten, die mir geholfen haben
Wie alle abhängigen einschließen Jars in einem einzigen nicht ausführbaren Jar?
Wie kann ich eine ausführbare JAR erstellen? mit Abhängigkeiten mit Maven?
und am wichtigsten
schnell tut
Ich habe Stunden mit diesem Thema verbracht. Also hier ist mein Beitrag.
Das Problem hier: wie Sie Ihre externen Dateien, die Ihr .JAR-Programm benötigt, INSIDE in die von Ihnen generierte EXE-Datei einfügen.
Wir nehmen an, dass Sie bereits die externen JARs auf eclipse / netbeans und ALL WORK FINE mit dem folgenden Befehl korrekt konfiguriert haben: java -jar yourprogram.jar.
Das eigentliche Problem besteht also darin, sicherzustellen, dass diese .EXE-Datei die externen JAR-Dateien enthält, andernfalls funktioniert sie nicht richtig.
1) Zuerst müssen Sie Launch4J und jedes andere Programm vergessen.
2) Installieren Sie JSmooth, ich empfehle, dass Sie die Windows-Version verwenden.
3) Im linken Menü gibt es einen Button "Anwendung". Klicke darauf.
4) Sie sehen eine Registerkarte "Klassenpfad". Klicken Sie auf das Pluszeichen (+) und fügen Sie die externen .jar-Dateien hinzu. Und das ist es !!
Vergessen Sie nicht, Ihr .jar-Anwendungsmarkierungs-Kontrollkästchen "verwenden Sie am eingebetteten Glas" zu setzen und wählen Sie die Hauptklasse richtig aus. Es wird funktionieren.