Konvertieren eines JApplet in .exe

Ich habe ein kleines (Swing) JApplet, das perfekt in Eclipse läuft: Es enthält eine Beschriftung, zwei Schaltflächen und ein Menü mit minimaler Benutzerinteraktion (bei Auswahl eines Menüelements ändert sich die Farbe des Containers). Ich habe das zu einem .jar konvertiert:

  • Ich habe mit der rechten Maustaste auf den Klassennamen (Sw3.java)
  • geklickt
  • Ausgewählt "Exportieren", dann "Java", dann "JAR-Datei"
  • Als nächstes wählte ich den aktuellen Projektnamen als zu exportierende Ressource, doppelte das darunterliegende "Default package", wählte den gewünschten Klassennamen aus der Liste der Klassen in der rechten Spalte (Sw3.java)
  • Als nächstes habe ich "Export generated class files and resources" angekreuzt, das Exportziel als "JAR file" ausgewählt und in "Documents" unter dem Namen "Sw3.jar" abgelegt. Ich habe auch "Komprimiere den Inhalt der JAR-Datei" ausgewählt.
  • Im nächsten Bildschirm habe ich "Klassendatei mit Kompilierungsfehlern exportieren" und "Klassendatei mit Kompilierungswarnungen exportieren"
  • aktiviert

Ich habe gehört, dass der richtige Weg, um eine EXE-Datei zu erhalten, ist ein .jar in .exe zu konvertieren, so dass ich die "Launch4j" -Anwendung mit der .jar zuvor erhalten:

  • Im "Basic" -Bereich: angegebene OUTPUT FILE: C: \ Users \ jerry \ Documents \ Sw3.exe und die JAR-Datei: C: \ Users \ jerry \ Documents \ Sw3.jar.
  • Prozesspriorität NORMAL
  • Header-Typ: GUI
  • MIN JRE Version: 1.0.0
  • Ich drückte auf das "Rad" und wählte Project.xml und erhielt eine erfolgreiche Bestätigungsmeldung.

Ich habe JRE installiert, also sollte die .exe funktionieren, aber es funktioniert nicht. Was habe ich falsch gemacht? Ich würde damit anfangen zu untersuchen, ob die .JAR korrekt erhalten wurde, ist das ein guter Ansatz und wie würde ich das überprüfen? Vielen Dank!

PS: Nachdem ich angewiesen wurde, JFrame anstelle von JApplet zu verwenden, habe ich das getan und es passiert immer noch nichts, wenn ich auf die .exe doppelklicke, um sie zu öffnen. Das lässt mich vermuten, dass in den beschriebenen Schritten etwas nicht stimmt.

1
nl ja ru
Danke PhiLho, ich habe JApplet benutzt, weil ich neu bin, Swing praktiziere und mich damit wohler fühle als JFrame. Allerdings fügte ich einen JFrame hinzu, wie von martijno unten angegeben, und Sie selbst und ich haben immer noch das gleiche Problem.
hinzugefügt der Autor Sam, Quelle
Danke PhiLo, ich folgte diesem Ratschlag, wählte das zweite Beispiel aus diesem Link und fügte nur ein paar zusätzliche Zeilen und Komponenten hinzu (zB ein Label) jsong.ba.ttu.edu/ISQS2341/Fall05/Lecture08_Beispiel.pdf . Das hat nicht funktioniert, also versuchte ich es erneut mit einem komplexeren JFrame-Beispiel, dem MyFrame-Beispiel von demselben Link. Beide funktionieren perfekt, wenn ich sie von Eclipse aus laufe, also muss etwas falsch in den Schritten sein, die ich in der ursprünglichen Frage vorgestellt habe?
hinzugefügt der Autor Sam, Quelle
Warum haben Sie ein JApplet anstelle eines einfachen JFrames erstellt? Applets sind spezielle Biester, und obwohl sie in einigen Fällen auf dem Desktop ausgeführt werden können, sind sie eher dazu gedacht, auf einer Webseite platziert zu werden (und sie werden anscheinend aus der Mode).
hinzugefügt der Autor PhiLho, Quelle
Ich dachte daran, einen reinen JFrame zu verwenden. Ich weiß nur nicht, ob Launch4j mit einem JApplet umgehen kann (eine Google-Suche gibt null Ereignisse zurück, was selten ist!). Sie können versuchen, die exe von der Kommandozeile mit der Option - l4j-debug zu starten, vielleicht erhalten Sie einige relevante Fehlermeldungen.
hinzugefügt der Autor PhiLho, Quelle

1 Antworten

Fügen Sie Ihrem Applet eine Hauptmethode hinzu, um es in einen JFrame einzufügen:

public static void main(String[] arg) {
  JFrame frame = new JFrame();
  JApplet applet = new Sw3();
  frame.getContentPane().add(applet);
  frame.pack();
  frame.setVisible(true);
  applet.init();
  applet.start();
}

Klicken Sie im Eclipse-JAR-Exportdialog nach dem "JAR Packaging Options" -Bildschirm (der mit den oben genannten "Klassendateien mit Fehler und/oder Warnungen exportieren") auf next (und nicht auf fertigstellen ). Wählen Sie "Manifestdatei erstellen" und geben Sie den vollständig qualifizierten Klassennamen Ihrer Hauptklasse ein:

Generate manifest with Main-class attribute from Eclipse JAR export

2
hinzugefügt
Danke Martijno, ich habe die Hauptmethode mit JApplet applet = new Sw3() hinzugefügt; sich meiner Situation anzupassen und alle Schritte, wie sie in meiner Anfangsfrage dargestellt wurden, noch einmal durchzugehen; aber ich sehe immer noch keine Veränderung, unf. Wenn ich auf die .exe doppelklicke, um sie zu öffnen, passiert nichts.
hinzugefügt der Autor Sam, Quelle
Ich denke, ich mache es im 3. Schritt, bin mir aber nicht sicher, ob Sie sich darauf beziehen: [Ich wählte den aktuellen Projektnamen als zu exportierende Ressource, doppelte das darunterliegende "Standardpaket", wählte den gewünschten Klassennamen (die JFrame-Klasse) aus der Liste der Klassen auf der rechten Seite.] Im letzten Schritt des JAR-Exports sah ich auch "Angeben des Manifests", das standardmäßig ausgewählt war und es als solches belassen hat. "Bestehendes Manifest aus Arbeitsbereich verwenden" ist dort die zweite Option. Vielleicht wird die JAR nicht korrekt generiert.
hinzugefügt der Autor Sam, Quelle
Oh mein Gott, es hat funktioniert, ich muss mich von jetzt an an diesen Schritt erinnern und ihn der Prozedur hinzufügen, vielen Dank, ich bin jetzt wirklich glücklich! Du bist fabelhaft!
hinzugefügt der Autor Sam, Quelle
Spezifizieren Sie die Klasse, die die Hauptmethode enthält (wahrscheinlich Ihre Applet-Klasse) im Manifest des Jar?
hinzugefügt der Autor martijno, Quelle
Meine Antwort bearbeiten ... Moment.
hinzugefügt der Autor martijno, Quelle