2010-01-06 3 views
100

Mögliche Duplizieren:
How do I create an .exe for a Java program?Kompilieren eines Java-Programm in eine ausführbare

Ich habe gerade ein einfaches Programm mit Eclipse und ich möchte es in eine ausführbare Datei kompilieren, sondern einfach kann nicht herausfinden, wie es geht. Bitte helfen.

+8

Das muss ein Duplikat :) –

+1

sehr viel so sein: http://stackoverflow.com/questions/516399/create-exe-for-java-program http://stackoverflow.com/questions/309329/ best-free-tool-to-build-ein-exe-from-java-code http://stackoverflow.com/questions/147181/wie-can-i-convert-my-java-program-an-an- exe-file http://stackoverflow.com/questions/743029/how-to-get-executable-file-of-java-programm –

+1

Auch Betrüger von http://stackoverflow.com/questions/1973431/how-do -i-make-ein-exe-in-netbeans-java-programm und http://stackoverflow.com/questions/2305762/how-to-create-a-jar-exe-of-java-project und http://stackoverflow.com/questions/2855937/how-can-i-convert-java-to-exe – Pops

Antwort

119

Sie .jar-Datei umwandeln kann auf diese Weise .exe:
alt text
1- JSmooth Exe Wrapper:
JSmooth ist eine Java-Executable Wrapper. Es erstellt native Windows-Startprogramme (Standard .exe) für Ihre Java-Anwendungen. Es macht Java-Bereitstellung viel reibungsloser und benutzerfreundlicher, da es in der Lage ist, jede installierte Java-VM selbst zu finden. Wenn keine VM verfügbar ist, kann der Wrapper automatisch eine geeignete JVM herunterladen und installieren oder einfach eine Nachricht anzeigen oder den Benutzer auf eine Website umleiten.

JSmooth bietet eine Vielzahl von Wrappern für Ihre Java-Anwendung, von denen jede ihr eigenes Verhalten hat: Wählen Sie Ihren Geschmack!

Download: http://jsmooth.sourceforge.net/

2- JarToExe 1.8
Jar2Exe ein Werkzeug JAR-Dateien in EXE-Dateien zu konvertieren. Im Folgenden sind die wichtigsten Merkmale wie in ihrer Website beschreiben:

  • Kann „Console“, „Windows-GUI“, „Windows-Dienst“ drei Arten von EXE-Dateien erzeugen.
  • Generierte EXE-Dateien können Programmsymbole und Versionsinformationen hinzufügen.
  • Generierte EXE-Dateien können Java-Programme verschlüsseln und schützen. Es werden keine temporären Dateien generiert, wenn das Programm ausgeführt wird.
  • Generierte EXE-Dateien bieten Unterstützung für das Systemtray-Symbol.
  • Generierte EXE-Dateien bieten Unterstützung für Protokollsystem-Ereignisprotokoll.
  • Generierte Windows-Dienst exe-Dateien können sich selbst installieren/deinstallieren und Service-Pause/Fortfahren unterstützen.
  • Neue Version der x64-Version, kann 64-Bit-Führungskräfte erstellen. (18. Mai 2008)
  • Sowohl der Assistentenmodus als auch der Befehlszeilenmodus werden unterstützt. (18. Mai 2008)

Download: http://www.brothersoft.com/jartoexe-75019.html

3- Executor
Paket Ihrer Java-Anwendung als Glas und Executor wird das Glas in eine Windows-EXE-Datei, nicht zu unterscheiden von einem nativen drehen Anwendung. Durch einen einfachen Doppelklick auf die EXE-Datei wird Java Runtime Environment aufgerufen und die Anwendung gestartet.

Download: http://mpowers.net/executor/

EDIT: Der obige Link ist gebrochen, aber hier ist die Seite (mit Arbeits Download) aus dem Internet Archive. http://web.archive.org/web/20090316092154/http://mpowers.net/executor/

4- Advanced Installer
Advanced Installer können Sie Windows MSI in Minuten installiert erstellen. Dies unterstützt auch Windows Vista und hilft auch beim Erstellen von MSI-Paketen in anderen Sprachen.
Download: http://www.advancedinstaller.com/ Lassen Sie mich wissen, andere Tools, die Sie verwendet haben, um JAR zu EXE zu konvertieren.

+5

1. last updated 2007 3. ungültiger Link 4. ungültiger Link –

+1

JWrapper ermöglicht Ihnen die Konvertierung von [Java zu einer exe] (http://www.jwrapper.com/java-to-exe-free.html) oder ansonsten native App auf den Hauptplattformen (Windows Linux, Mac) kostenlos. Es läuft auf jedem Betriebssystem, unterstützt integrierte Codesignaturen und automatische Updates und kann die JRE optional in einem sehr kleinen (stark komprimierten) Paket bündeln. – AntonyM

+1

JarToExe ist eine 30-Tage-Testversion ... – 0x6B6F77616C74

1

Sie können eine .bat erstellen, die die erstellte JAR-Datei ausführt und prüft, ob eine JRE vorhanden ist.

Von Mitch nützlichen Link (source)

java -classpath myprogram.jar de.vogella.eclipse.ide.first.MyFirstClass 

Diese in die Charge verwendet werden kann ...

+0

Die Verwendung einer Batch-Datei hat das Problem, dass eine Konsole Das Fenster wird geöffnet. Was nicht nett ist, wenn Sie ein GUI-Programm starten. – Joey

+5

Geez. Ist diese Namespace-Hierarchie tief genug? –

+0

Aus dem Link Mitch (Post gelöscht jetzt BTW) gegeben. Ich denke nicht wirklich, dass es hier um den Punkt geht. –

0

Es gibt eine kleine Handvoll von Programmen, die das tun ... TowerJ ist, das kommt Denken Sie daran (ich lasse Sie Google dafür), aber es kostet viel Geld.

Die nützlichste Referenz für dieses Thema fand ich bei: http://mindprod.com/jgloss/nativecompiler.html

es noch ein paar anderen Produkten erwähnt und Alternativen den gleichen Zweck zu erreichen.

3

Normalerweise verwende ich ein Bat-Skript dafür. Hier ist, was ich normalerweise verwende:

Die% ~ dp0 extrahieren das Verzeichnis, in dem die .bat befindet. Dies ermöglicht dem Fledermaus, die Positionen der Gefäße zu finden, ohne spezielle Umgebungsvariablen oder die Einstellung der PATH-Variablen zu benötigen.

BEARBEITEN: Anführungszeichen zum Klassenpfad hinzugefügt. Sonst, wie Joey sagte, "können lustige Dinge mit Leerzeichen passieren"

+4

Sie sollten Ihren Klassenpfad wirklich angeben. Ansonsten passieren lustige Dinge mit Leerzeichen. – Joey

30

Ich würde GCJ (GNU Compiler für Java) in Ihrer Situation verwenden. Es ist ein AOT (früher) Compiler für Java, ähnlich wie GCC für C. Anstatt Code zu interpretieren oder Java Java Code zu generieren, der später von der Java VM ausgeführt wird, generiert er Maschinencode.

GCJ ist auf fast jedem Linux-System über seinen jeweiligen Paketmanager (falls verfügbar) verfügbar. Nach der Installation sollte der GCJ-Compiler dem Pfad hinzugefügt werden, damit er über das Terminal aufgerufen werden kann. Wenn Sie Windows verwenden, können Sie GCJ über Cygwin oder MinGW herunterladen und installieren.

Ich würde jedoch dringend empfehlen, dass Sie Ihre Quelle für eine andere Sprache, die kompiliert werden soll, wie C++ neu schreiben. Java soll eine tragbare, interpretierte Sprache sein. Das Kompilieren mit dem Maschinencode widerspricht vollständig dem, für das die Sprache entwickelt wurde.

+1

+1 für den einen Kommentar, der (richtig) bejahend antwortet. Ich weiß nicht, ob GCJ alles unterstützt, was die herkömmliche classfile/jvm-Kombination tut, aber es ist definitiv einen Versuch für ein "einfaches Programm" wert. – Edmund

+0

@SJB GCJ kompiliert zu nativen ausführbaren Dateien, für die keine JVM erforderlich ist. – Mark

+3

@Mark - sie benötigen keine separate JVM, aber die Bibliotheken libgcj sind effektiv eine JVM. –

16

Ich benutze launch4j

ANT Befehl:

<target name="jar" depends="compile, buildDLLs, copy"> 
    <jar basedir="${java.bin.dir}" destfile="${build.dir}/Project.jar" manifest="META-INF/MANIFEST.MF" /> 
</target> 

<target name="exe" depends="jar"> 
    <exec executable="cmd" dir="${launch4j.home}"> 
     <arg line="/c launch4jc.exe ${basedir}/${launch4j.dir}/L4J_ProjectConfig.xml" /> 
    </exec> 
</target> 
+1

Ich mag diese, wie es auch auf anderen Plattformen funktioniert – willcodejavaforfood

+0

Launch4j läuft die JVM als separaten Prozess, so zeigt sich im Task-Manager als 'javaw'. – NateS

+0

Diese Antwort wäre * viel * besser, wenn Sie den Inhalt von 'L4J_ProjectConfig.xml' enthalten hätten –

2

Wir JSmooth gefunden haben, gut zu funktionieren und leicht skript mit Ameise unter Linux. Vielleicht möchten Sie ein-jar (auch unter Linux leicht skriptfähig mit ant) ​​verwenden, um zuerst eine multifile Anwendung in einem einzigen jar zu sammeln.

Wir brauchten in erster Linie den einfachen Einsatz der EXE kombiniert mit den "hey, Sie brauchen Java Version X, gehen Sie hier zum Download" Einrichtungen.

(aber was Sie am wahrscheinlichsten brauchen, ist die "ausführbare jar"/"ausführbare Jar" -Funktion in Java-Standard).