2009-07-28 8 views
3

Ohne neue Programmiersprachen zu lernen, können wir Java direkt mit .exe (ausführbare Windows-Datei) Software verwenden? Und ist es weg zu machen .jar (Java ARchive) Software in.exe (ausführbare Windows-Datei) transformieren?Kann meine Java-Software in .exe-Software umgewandelt werden?

Würde diese Konvertierung die Leistung der Software beeinträchtigen?

+2

Ist es meine Phantasie oder wird diese Frage mindestens einmal pro Woche gestellt? http://stackoverflow.com/questions/516399/create-exe-for-java-program, http://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to- an-exe-file, http://stackoverflow.com/questions/309329/best-free-tool-to-build-an-exe-from-java-code –

+0

Ich war gerade dabei, die gleichen Links zu posten. ein doppeltes Duplikat. – Stroboskop

Antwort

6

Einer der wichtigen Punkte von Java lesen wollen, ist, dass es auf jeder Plattform laufen werden (z. B. Windows, Linux usw.), auf dem eine geeignete Java Virtual Machine (JVM) installiert ist. Eine EXE-Datei wird kompiliert, um auf nur einer Plattform zu funktionieren.

Was Sie denken, dass Sie wollen, ist ein .jar in eine .exe zu verwandeln, damit Sie es leicht starten können. Was ich erwarte Sie wirklich wollen ist nur eine einfache Möglichkeit zum Starten einer Java-App, die jeder verstehen kann, einschließlich Ihrer Eltern.

Der einfachste Weg, dies zu tun, ist eine Windows-Batch-Datei zu erstellen, die Ihre Java-App startet. Eine der Zeilen des Skripts, eine neue Datei, eine neue Anweisung für Ihre Benutzer - "Doppelklick auf runme.bat"

Es gibt Möglichkeiten, ein .jar in eine .exe, aber Sie sollten darüber nachdenken, ob das wirklich ist was willst du, und wenn ja, warum.

Hinweis: Sie können eine .jar in Windows starten, indem Sie einfach darauf doppelklicken, solange die Hauptklasse im Manifest angegeben ist. Vielleicht möchten Sie in Tools wie Apache Ant schauen, um das Erstellen von .jars und deren Manifesten zu vereinfachen. Nur ein Gedanke.

EDIT:

Eine Batch-Datei in Windows ist eine einfache Textdatei, die Befehle enthält. Sie können die Befehle testen, indem Sie sie an der Eingabeaufforderung ausführen (Start -> Ausführen -> cmd). Wenn Sie eine Batch-Datei ausführen, werden die darin enthaltenen Befehle jeweils einzeln in die Befehlszeile eingegeben.

Wie man ein Glas von der Eingabeaufforderung auszuführen: „java -jar myfile.jar“

Wenn Sie eine Batchdatei erstellen (.bat - Verwendung Notepad oder Ihren bevorzugten Texteditor) mit „java -jar Meinedat .jar "(ohne die Anführungszeichen!), dann wird durch Doppelklick die im Manifest von myfile.jar angegebene Hauptklasse gestartet. myfile.jar muss jedoch in demselben Ordner wie die Batch-Datei sein.

Wenn Sie den Befehl "java -jar lib \ myfile.jar" (ohne die Anführungszeichen) verwenden, wird Ihre Batch-Datei Myfile ausführen.jar, das sich in einem Ordner namens lib befindet, der sich im selben Ordner wie die Stapeldatei befindet. Verwenden Sie diesen Ansatz, wenn Sie eine ganze Menge von Jars mit Ihrer Anwendung haben und Sie nicht im Gesicht des Benutzers schieben wollen :)

Beachten Sie, dass das Verschieben der Batch-Datei es brechen wird, wenn es absolute Pfade zu dem verwendet JAR-Datei - z "java -jar C: \ dev \ meinedatei.jar". Natürlich, wenn Sie absolute Pfade verwenden, dann wird das Verschieben der Jar sowieso die Batch-Datei :)

Beachten Sie auch, dass Sie in der Lage sein sollten, eine Jar-Datei nur durch Doppelklicken in Windows zu starten, solange die Die Hauptklasse wird im Manifest angegeben. Versuche es. Natürlich, Ihre Benutzer zu überzeugen, dass sie doppelt darauf klicken können, ist eine ganz andere Sache ...

Als letzte Anmerkung, wenn Sie eine Batch-Datei verwenden, erhalten Ihre Benutzer eine nette Eingabeaufforderung im Hintergrund sitzen bis Ihre Java-App wird geschlossen. Das heißt, es sei denn, Sie starten Ihren Batch-Datei-Befehl mit "Start". Z.B. "starte java -jar myfile.jar". Wenn Ihre App so konfiguriert ist, dass sie sich bei System.out oder System.err anmeldet, erhalten Sie trotzdem eine Eingabeaufforderung, wenn Ihre App in einen dieser Streams schreibt.

Letzte abschließende Anmerkung, in der Linux-Welt das Äquivalent von Batch-Dateien sind Shell-Skripte.

+1

Ich mag die Idee von Ihnen zu wissen, was ich mehr als ich selbst wollen :) Würden Sie mir mehr Anweisungen zu den Windows-Batch-Dateien geben können? (Detailliert wenn möglich) Danke. –

+1

Ich wollte genau dasselbe, als ich bei Uni war :) Ich hatte etwas ordentlich geschrieben und wollte etwas, was ich meinen Eltern zeigen konnte - nichts davon .jar Unsinn! Wenn du deine anderen Fragen anschaust, denke ich, dass du an einem ähnlichen Ort bist. Ich werde meinen Beitrag bearbeiten, um einige Anweisungen über Batch-Dateien zu geben, wenn Sie mir eine Minute geben :) –

+0

Awesome :) all das ist neu für mich. Du bist sehr hilfreich! –

1

ich einen Wrapper für Java unter Verwendung von EXE-Dateien für eine ziemlich lange Zeit zu machen:

JStart32 Es ist nur ein Wrapper für * .jar-Dateien .

Aber fragen Sie sich: Würde nicht eine exe den Zweck der Java-Plattform Unabhängigkeit töten?

+0

Nun, Sie könnten mehr als einen Download liefern/liefern: eine .exe, eine .dmg, eine .rpm, etc. –

2

Ich bin mir nicht sicher, ob dies eine geeignete Antwort ist, weil ich nicht mit Java arbeiten, aber könnten Sie nicht eine Verknüpfungsdatei zeigt auf die Java-Laufzeit und übergeben Sie das Glas als ein Argument, die

ich mit merke, dass dies nicht der einzige Weg ist, wahrscheinlich auch der beste Weg, aber für mich ist es ein wenig besser als das Erstellen eines Stapels oder das Konvertieren in eine EXE-Datei, wenn alles, was du suchst, ein praktischer Weg ist, eine Java App

2
zu starten

Die einfachste Möglichkeit besteht darin, eine Windows Batch-Datei (.bat) zu schreiben, die die Anwendung startet.