# Java Datei ausführbar machen mit Icon bzw. .exe



## zer0 (5. Januar 2010)

Hallo liebe Javaner 

Ich habe ein Java Programm geschrieben das ich jetzt gerne ausführbar machen würde, also per Doppelklick starten! Per Java Archive (.jar) klappt das auch schon, nur würde ich gerne auch ein Icon benutzen was mit Java Archiven nicht geht (schade eigentlicht!). Welche Möglichkeiten bleiben mir?

Hab mich im Internet schon schlau gemacht, das ich mittels eines Programm eine .exe Datei erstelle und diese Datei startet das Java Archive. Kennt jemand Programme die sowas machen bzw. benutzt jemand selbst sowas? 

Ausserdem, Programme wie Vuze (früher Azureus) oder Eclipse die auch in Java geschrieben sind haben auch eine ausführbare Datei mit Icon, wie haben die das gemacht?

Schon mal vielen Dank für eure Antworten!


----------



## Jellysheep (5. Januar 2010)

Du könntest auf jeden Fall auf den Desktop oder in das Startmenü etc. eine Verknüpfung mit Icon legen. 
Mit Java Web Start (die JNLP-Dateien) kann man das automatisch machen lassen und auch einen Dateityp registrieren lassen, die Dateien werden später dann automatisch mit dem Java-Programm geöffnet.


----------



## Erik (5. Januar 2010)

Hi,

Ich wage mich mal ins Java Forum 

Der Sinn von Java ist ja Plattform-unabhänig zu sein. Diese *.exe Dateien die du wünscht sind aber *nicht* plattform-unabhänig sondern laufen nur unter Windows. Du kannst dir natürlich ne *.exe programmieren die dein Java-Programm startet. Allerding macht dies nicht wirklich Sinn. Ich würde dir empfehlen eine *.bat zu schreiben in der du dann dein Programm startest, das macht nicht so viel Aufwand.

Gruß
Erik

EDIT: zu langsam aber vielleicht hilft mein Beitrag dir ja trotzdem weiter


----------



## derz (5. Januar 2010)

Hallo,

Soviel ich weiss, ist die *.exe dann nur ein Wrapper für die *.jar-Datei. Aber das spielt ja keine Rolle.  Über Google findest du mit dem Begriff "jar to exe" einige solcher Programme:
http://jsmooth.sourceforge.net/
http://launch4j.sourceforge.net/

Grüsse Derz


----------



## g-a-s-t (5. Januar 2010)

ich kann Launch4j nur empfehlen, damit lässt sich noch so einiges (wie z.B. Splashscreen, Icon oder Version Infos) ergänzen bzw. einfügen.


----------



## zer0 (5. Januar 2010)

Hallo,

zunächst mal Danke für eure Antworten 

@Jellysheep: Das mit der Verknüpfung ist eine gute Idee, aber ich bin mir nicht sicher ob das dann auch noch klappt wenn ich das Programm wenn ich das Programm weitergebe, dass dadurch der Pfad nichtmehr stimmt. Das mit Java Web Start kenn ich noch garnicht, das schau ich mir mal an!

@Erik: Ja mir ist klar das .exe Dateien nur unter Windows laufen, für Linux hätte ich das dann mit einem Shellskript versucht zulösen. 
Zu den Batch-Dateien, Batch ist ja eigentlich eine Windows sache, das sind ja nur Textdateien die mit der Endung .bat gespeichert werden. Diese laufen auch unter Linux, bloß bin ich mir nicht sicher ob der Code der selbe ist in Windows und Linux. Ausserdem kann ich dort das Icon ändern?

Weiß jemand wie das bei Eclipse gemacht wird, auch mit einer Wrapper für die .jar?

Ausserdem kann mir jemand sagen wie ich das Icon in der Titelleiste des Programms ändern kann?


----------



## vfl_freak (5. Januar 2010)

Moin,

vorab: 'launch4j' kenne ich nicht, kann ich also nicht vergleichen ...

Ich würde Dir aber auch _*JavaWebStart*_ empfehlen. Das nutzen wir hier auch und das kann eine ganze Menge!
Ein gute Einführung ist wohl dieses hier:
http://www.dpunkt.de/java/Programmieren_mit_Java/Deployment/1.html

Gruß
Klaus


----------



## Jellysheep (5. Januar 2010)

Zum Thema Webstart: Google mal danach und schau dir mal diese Links an:
http://www.tutorials.de/forum/java/350532-java-web-start-eigene-anwendung.html#post1816598
http://www.dpunkt.de/java/Programmieren_mit_Java/Deployment/8.html
Für eine Dateityp-Registrierung und Desktop-Links folgendes Beispiel:

```
<jnlp spec="1.0+" codebase="http://localhost/" href="http://localhost/jnlpdemo.jnlp">
  <information>
    <title>USV-Progamm</title>
    <vendor>localhost</vendor>
    <homepage href="http://localhost/"/>
    <description>JNLP-Demo Applikation</description>
    <icon href="http://localhost/image077.gif" kind="default"/>
    <shortcut online="false">
      <desktop/>
      <menu submenu="USV-Programm"/>
    </shortcut>
    <association extensions="usv" mime-type="application/vnd.usv.file"/>
    <offline-allowed/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="timeout" policy="always"/>
  <resources>
    <java version="1.6"/>
    <jar href="http://localhost/jnlpdemo.jar" main="true"/>
  </resources>
  <application-desc main-class="Test1"/>
</jnlp>
```




zer0 hat gesagt.:


> Ausserdem kann mir jemand sagen wie ich das Icon in der Titelleiste des Programms ändern kann?


So:

```
JFrame f;
...
f.setIconImage(new ImageIcon("Pfad").getImage());
```


----------

