# .exe / Dateiverknüpfung / Installer



## snueffel (13. Mrz 2014)

Hallo zusammen!

Ich habe derzeit ein JAVA-Programm, dass ich für den Standard-Windows-Nutzer um einige Komfort-Funktionen erweitern möchte. Mal kurz was ich damit meine:

1. Erstellen einer .exe
Das funktioniert bereits wunderbar - Ich habe aus einer .jar eine lauffähige .exe erstellt.

2. Erstellen eines Installers
Die Software soll über einen Installer auf den Rechner gebracht werden, insbesondere wegen des folgenden Punktes (Registry-Eintrag notwendig)

3. Verknüpfen einer Dateiendung mit der Software
Die Software ist in der Lage, Dateien in einem spezifischen Format abzuspeichern. Ich würde gerne erreichen, dass die erstellten Dateien (.xyz) bei Doppelklick mein Programm öffnen - bisher läuft das ganze halt Programmintern über einen "Laden"-Button.

Genau beim 3. Punkt hapert es: Natürlich könnte ich die erstellte .exe verknüpfen, sodass meine SW geöffnet wird, aber wie bekommt diese wiederum mit, dass sie zu Beginn die Datei laden soll? So viel wie ich die letzte Zeit über JAVA gelernt habe, genauso frisch bin ich hinter den Ohren, wenn es um Betriebssystem-Eingriffe geht :bahnhof: Von daher bin ich für jeden konstruktiven Vorschlag dankbar, der die drei Punkte irgendwie vereint :toll:


----------



## Sen-Mithrarin (14. Mrz 2014)

hmm ... relativ einfach umsetzbar

1) mich würde interessieren wie genau du es umgesetzt hast ... denn es gibt ja doch einige anbieter dafür
2) installer ? selber schreiben
3) registry für datei-verknüpfung ? überflüssig ... wenn schon ziel-plattform windows kann man auch direkt die api nutzen

klar ist es "sauberer" wenn man mit einer registry-lib (google mal ... es gibt da ein paar) sauber einen eintrag ins system wirft ... aber das bringt dir immer noch nichts wenn du nicht weist wie deine software entsprechend darauf reagieren soll
eine datentyp-verknüpfung die "java -jar deineapp.jar" aufruft ... oder entsprechend die erstellte exe ... bringt dir ja nichts wenn deine software darauf nicht reagiert und dann trotzdem nur "normal" startet

und das wäre bei jedem programm so

also liegt die lösung dafür mal wieder im code > selber schreiben ... gleiches wie punkt 2


sicher ... es gibt installer .. auch für java ... aber man sollte sich erstmal über den begriff klar sein was "installieren" überhaupt bedeutet

nämlich nicht mehr und nicht weniger als "daten auf pc entpacken und nötige einstellungen setzen" ... viel mehr ist ein installationsprozess nicht

java eignet sich für sowas sehr gut ... denn man kann z.b. alles in einem jar ausliefern ... bzw in einer exe verpackt ... und dann wie z.b. eine setup.exe oder ein installer.msi die daten die gepackt sind lesen und raus auf die platte schreiben ...




als tipp wie man auf das öffnen einer datei reagiert : parameter ... sollte ausreichen ... manchmal ist weniger halt doch mehr


----------



## snueffel (14. Mrz 2014)

Hallo!

Kurz vorweg: ich schreibe gerade vom Handy, daher die Kurzfassung. Bei Nachfragen antworte ich dann morgen 

Also ja, die einzelnen Punkte an sich sind nicht sonderlich schwer, allerdings hat es eine Weile gedauert alles zu kombinieren...

 Die .exe habe ich inklusive aller benötigten jars gewrappt, so dass nicht einmal eine nee benötigt wird (das empfinde ich für den otto-normal-verbraucher als deutlich angenehmer und wirkt professioneller.

Beim installieren liegt eben der Sinn in der dateiendungs-Verknüpfung, es ist doch wirklich angenehm, wenn man seine word-datei per Doppelklick Öffnen kann und eben nicht erst word und die Datei lädt... den Pfad der zu verwendenden Datei kann in der main-methode übergeben werden, dazu ist ja schließlich der Parameter args da... dass der Pfad da auch auftaucht, muss in der registry hinterlegt werden. Weiterer Vorteil: wird das Programm deinstalliert, verschwindet auch wieder der key.

Zur Plattformunabhängigkeit: die wird durch das aufsetzen eines installers ja nicht aufgegeben, sondern die Funktion wird nur für windows-benutzer erweitert. Und mal abgesehen davon: der standard-Nutzer hat nun mal Windows, von daher ist das prinzipiell für die große Mehrheit vorteilhaft.

 Gruß snueffel


----------



## Sen-Mithrarin (17. Mrz 2014)

gut ... hast du dann jetzt alle infos ?
was du machen musst hast du ja jetzt schon selbst gesagt ... jetzt musst du es nur noch umsetzen


----------



## snueffel (17. Mrz 2014)

Jap, hat alles wunderbar geklappt  Wie gesagt, das Problem lag bei den Registry-Einträgen (wie muss wo was hin) und bei dem, wie ich dem JAVA-Programm mitteile, dass es anders handeln soll (also wie sieht der Parameter aus)


----------

