# .jar in .exe Umwandeln



## JonSoftware (9. Jun 2016)

Hallo liebe Java-Programmierer,

ich wollte fragen wie man eine .jar Datei in eine .exe Datei umwandeln kann.

MfG 

JonSoftware


----------



## Xyz1 (9. Jun 2016)

Geht nicht, kostet dich viel GELD.


----------



## Joose (9. Jun 2016)

https://www.google.at/?client=firefox-b#q=jar+to+exe&gfe_rd=cr


----------



## da921610 (10. Jun 2016)

Ich nutze lanch4j
http://launch4j.sourceforge.net/
Da kann man nämlich auch einstellen, welche Meldung hochkommen soll, wenn die falsche Java Version verwendet wird etc.


----------



## Xyz1 (10. Jun 2016)

Also das sind alles nur Wrapper. Quelloffen usw. Decompiler in Maschinensprache bzw. .Exe - das kostet Geld, ist nicht kosten los verfügbar.

Warum?, ist ja nicht Bytecode....


----------



## tommysenf (10. Jun 2016)

DerWissende hat gesagt.:


> Also das sind alles nur Wrapper. Quelloffen usw. Decompiler in Maschinensprache bzw. .Exe



Ein Decompiler ist etwas komplett anderes.



DerWissende hat gesagt.:


> - das kostet Geld, ist nicht kosten kosverfügbar.


Doch ist es:
https://gcc.gnu.org/java/




DerWissende hat gesagt.:


> Warum?, ist ja nicht Bytecode....


???


----------



## Xyz1 (11. Jun 2016)

Oh, wieder jemand meine Signatur nicht gelesen...



tommysenf hat gesagt.:


> Ein Decompiler ist etwas komplett anderes.
> 
> Doch ist es:
> https://gcc.gnu.org/java/
> ...



.jar -> .exe <-> Decompiler, Compiler


> we cannot provide these for all platforms





> Compiled applications are linked with the GCJ runtime, libgcj, which provides the core class libraries, a garbage collector, and a bytecode interpreter...


???
http://stackoverflow.com/questions/5001661/mingw-gcj-for-windows

Wenn es anschließend wieder interpretiert wird, ist das Ziel, .jar->.exe, nicht getroffen/verfehlt.


----------



## tommysenf (11. Jun 2016)

Wenn man wissend wäre wüsste man das der GCJ ein Compilerfrontend der GNU Compiler Collection ist. In diesem Fall würde man daher auch das Wissen besitzen dass sowohl Maschinencode erzeugt wird. Das interpretieren bezieht sich nur für den Fall des dynamischen Ladens e.g. ClassForName. Dieses Feature kann logischerweise nicht statisch zur Compilezeit ausgewertet werden daher wird entsprechender Programmcode interpretiert.
Wird dynamisches Laden nicht verwendet enthält wird auch nichts innerhalb des Binaries interpretiert.
Weiterhin nennt man ein Stück Software das Sourcecode oder Bytecode in Maschinencode wandelt seit jeher immer noch Compiler und nicht Decompiler egal wie man es dreht.

P.S.: Ich empfehle dir dringend ein  /*Update*/ Downgrade deiner Signatur


----------



## InfectedBytes (11. Jun 2016)

eine jar ist nur eine zip Datei bestehend aus class Dateien (und Resourcen etc.).
Beim dekompilieren würdest du wieder java Dateien erhalten, hier wird jedoch der Bytecode der class Dateien zu Maschinencode kompiliert.

edit:


DerWissende hat gesagt.:


> Wenn es anschließend wieder interpretiert wird, ist das Ziel, .jar->.exe, nicht getroffen/verfehlt.


Genau genommen hat der TE nicht gesagt das es nicht interpretiert werden soll. Er will nur anstatt einer jar eine exe haben. 
Wie sich diese exe nun intern Verhalten soll hat er nicht spezifiziert


----------



## JonSoftware (11. Jun 2016)

Hallo,
erstmal vielendank für die vielen Rückmeldungen. Ich habe meine Frage nicht klar genug gestellt. Mir geht es hauptsächlich darum, dass ich ein eigenes Java-Programm ohne eine IDE o.ä. laufen lassen kann. 

Wäre nett, wenn ich ein Paar Rückmeldungen bekomme.

MfG

JonSoftware

PS: Ich habe noch nicht so viel Erfahrung mit der Programmierung


----------



## Cromewell (11. Jun 2016)

JonSoftware hat gesagt.:


> Mir geht es hauptsächlich darum, dass ich ein eigenes Java-Programm ohne eine IDE o.ä. laufen lassen kann.


Was ist  dann denn so falsch an einer Jar?


----------



## Xyz1 (11. Jun 2016)

Jo, ist ja nicht schlimm, nur eine komplett andere Richtung.

1.) .jar durch IDE erstellen + Doppelklick
2.) .jar durch IDE erstellen + java -jar meineJar.jar (PATH muss zuvor gesetzt sein)
3.) .jar durch IDE erstellen + Wrapper .Exe durch Tool erstellen + Doppelklick

Alles setzt voraus, dass JDK + JRE installiert ist (richtig)


----------



## Xyz1 (11. Jun 2016)

Cromewell hat gesagt.:


> Was ist  dann denn so falsch an einer Jar?



Wahrscheinlich nix, nur er hat bis jetzt noch kein Programm außerhalb der IDE laufen, denke ich mal 

Dann kann das mit meiner Antwort, reiner Maschinencode, auch gestreicht werden


----------



## tommysenf (11. Jun 2016)

https://docs.oracle.com/javase/tutorial/deployment/jar/run.html


----------



## olepoeschl (24. Dez 2021)

Für Leute, die sich die Frage heute noch stellen und eine simple Lösung suchen:
Habe ein Batch script geschrieben, was eine x64 .exe erstellt, die die .jar und eine angepasste JRE beinhaltet (nur mit Java Modulen die tatsächlich von der .jar gebraucht werden) und sich zur Runtime selbst entpackt. Erfüllt den Zweck und funktioniert 1A. https://github.com/olepoeschl/jarbatexe


----------



## mrBrown (25. Dez 2021)

olepoeschl hat gesagt.:


> Für Leute, die sich die Frage heute noch stellen und eine simple Lösung suchen:
> Habe ein Batch script geschrieben, was eine x64 .exe erstellt, die die .jar und eine angepasste JRE beinhaltet (nur mit Java Modulen die tatsächlich von der .jar gebraucht werden) und sich zur Runtime selbst entpackt. Erfüllt den Zweck und funktioniert 1A. https://github.com/olepoeschl/jarbatexe


Das JDK kann das mittlerweile allein, ohne Launch4J


----------



## Mart (26. Dez 2021)

mrBrown hat gesagt.:


> Das JDK kann das mittlerweile allein, ohne Launch4J


oder jpackage das den passenden installer für das betriebssystem leifert wo man darauf ist ohne scripts


----------



## Neumi5694 (27. Dez 2021)

Ich verwende heute launch4j, macht immer noch seinen Dienst. exe4j soll auch gut sein.


----------



## mrBrown (27. Dez 2021)

Mart hat gesagt.:


> oder jpackage das den passenden installer für das betriebssystem leifert wo man darauf ist ohne scripts


Das meinte ich, jpackage ist ja Teil des JDK


----------

