# .exe Datei für Eclipse Java Programm erstellen?



## berndoa (19. Aug 2022)

Hallo,
ich habe ein (hoffentlich) funktionstüchtiges Java Programm in Eclipse geschrieben, das auch eine im lib Ordner hinterlegte .jar datei benutzt.

Gibt es irgendeine Möglichkeit, das nun in eine .exe Dagtei zu packen oder so sodass das einfach und ohne Eclipse ausführbar ist?

Weil konkret will ich den Windows Scheduler oder sowas dazu nutzen, jeden Tag zu einer festen Zeit das Programm auszuführen.
Womit ausführen innerhalb von Eclipse recht schwer geht.

Gibts da eine gute Lösung?


----------



## KonradN (19. Aug 2022)

Für den Windows Scheduler brauchst Du keine EXE. Da kannst Du einfach ein kleines Script schreiben, das den Aufruf so macht, wie Du es gerne hättest.

Ansonsten wären die aus meiner Sicht einfachsten Lösungen:

JLink (ab Java 9) für das Image und dann JPackage (ab Java 14) für ein App-Image, das auch eine exe enthält.
GraalVM ist eine interessante Sache, weil halt alles richtig zu einer EXE übersetzt wird. Setzt aber dann auch einiges mehr voraus (Visual Studio und so).

Der Weg über JLink / JPackage ist manuell machbar oder Du nutzt Maven. Der Weg über maven ist in der Regel am einfachsten (meiner Meinung nach). Ein kleines Projekt, wie das alles aussehen könnte findet sich z.B. unter https://github.com/kneitzel/JavaMavenApp


----------



## Dukel (19. Aug 2022)

Im Windows Scheduler kann man java.exe mit entsprechenden Parametern Problemlos ausführen.
Eine .exe möchte man eher, wenn man das Programm verteilt.


----------



## berndoa (20. Aug 2022)

KonradN hat gesagt.:


> Für den Windows Scheduler brauchst Du keine EXE. Da kannst Du einfach ein kleines Script schreiben, das den Aufruf so macht, wie Du es gerne hättest.
> 
> Ansonsten wären die aus meiner Sicht einfachsten Lösungen:
> 
> ...


Hm, dann müsste ich mir eine cmd Datei oder sowas schreiben die dann ausgeführt wird?


----------



## KonradN (20. Aug 2022)

berndoa hat gesagt.:


> Hm, dann müsste ich mir eine cmd Datei oder sowas schreiben die dann ausgeführt wird?


Das wäre eine Möglichkeit. Du kannst den Aufruf auch direkt im Job hinterlegen wie von @Dukel gesagt, aber ich mache das gerne separat. Wie etwas gestartet wird gehört ja mehr zur Applikation als zum Job im Scheduler (aus meiner Sicht) und es macht das Testen etwas einfacher.

Ich würde generell eine Einheit bauen, also ein Verzeichnis, in dem alles ist, auch eine passende JRE. Das Script startet dann auch genau dieses Java. Das hat das Ziel, dass es keine Probleme gibt, wenn da etwas aktualisiert wird oder so. 

Das sind aber viele Gedanken, die schon viel zu tief gehen - das Alles braucht man nicht! Der Aufruf kann direkt im Job angegeben werden, wenn man es einfach halten will und es eh nur auf Deinem System läuft.


----------



## samsoo (23. Aug 2022)

berndoa hat gesagt.:


> Gibt es irgendeine Möglichkeit, das nun in eine .exe Dagtei zu packen


nur gegen Kosten...


----------



## KonradN (23. Aug 2022)

samsoo hat gesagt.:


> nur gegen Kosten...


Nein, zu exe Dateien kommt man auf zwei freien Wegen, die ich in #2 bereits erwähnt habe. (Und dabei sind open Source Wrapper noch nicht einmal berücksichtigt.)


----------



## samsoo (23. Aug 2022)

KonradN hat gesagt.:


> (Und dabei sind open Source Wrapper noch nicht einmal berücksichtigt.)


Danach wurde nicht gefragt.



KonradN hat gesagt.:


> Nein


komma klar, was stimmt bei dir nicht?


----------



## KonradN (23. Aug 2022)

Sorry, aber das wird mir etwas zu blöd. Es wurde danach gefragt, wie man zu eine exe Datei für seine Applikation kommen kann und das geht sehr wohl auch ohne Kosten. Zwei valide Wege habe ich schon in #2 aufgezeigt. 

Wenn Du mit meiner Aussage nicht klar kommst: Wie wäre es mit ein paar einfachen Argumenten? Begründe Deine Sichtweise, wieso:

JLink / JPackage
GraalVM
Open Source Lösungen, die ein EXE aus gegebenen Java Programmen bauen
nicht diese Frage beantwortet:


berndoa hat gesagt.:


> Gibt es irgendeine Möglichkeit, das nun in eine .exe Dagtei zu packen



Und auch gerne, was die kommerziellen Tools machen, das anders zu den genannten Lösungen ist. 

Es ist hier nun einmal üblich, Argumente auszutauschen. Daran kannst Du Dich gerne beteiligen.


----------



## yfons123 (24. Aug 2022)

du kannst auch eine ausführbare jar bauen, oder eine jar mit java und diese dann mit einer bat datei starten

als zusätzliche lösung


----------

