# Autostart unter Windows für Java Aplikation



## mongole (9. Apr 2008)

Hallo!

Ich habe ein kleines Tool geschrieben, das ich gerne bei Anmeldung am System starten möchte. Das ganze soll auch funktionieren, wenn ich das Tool mit einem selber generierten Installer (mit IzPack erzeugt) auf einem Rechner installiere.

Dabei hab ich das Problem, dass ich nicht von vornherein weiß, wo das Programm installiert wird, da sich das  bei unterschiedlichen Sprachversionen von Windows ja ändert (c:\Programme vs. C:\Program Files).

Unter Windows gibt es folgende Varianten die ich probiert hab:

Autostart/Startup Folder im Start Menü: Klappt wenn man es händisch einen Link/Shortcut erzeugt und ihn dort hinkopiert. Funktioniert für mich nicht, da ich vor der Installation nicht weiß, wo das Program installiert wird und so keinen Shortcut im vornhinein erstellen kann. Wie ich automatisch (nicht über's kontext menü) einen shortcut erzeuge hab ich noch nicht rausgefunden. Zumindest nicht, ohne tools die etwas kosten. Für einen Tipp wie ich dynamisch Shortcuts erzeugen kann, bin ich sehr dankbar!

Registry: unter dem Registry Key _HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run_ kann man Programme angeben, die gestartet werden können. Wenn ich dort direkt das ausführbare .jar file angebe, passiert nichts. Auch wenn ich _java -jar c:\path\executable.jar_ angebe passiert auch nichts. Ich weiß auch nicht, in welcher logdatei ich nachsehen könnte, was schief gelaufen ist. Einzig geklappt hat der Aufruf einer Batch datei _c:\path\callTheJar.bat_. Die Variante hat den Schönheitsfehler, dass eine DosBox geöfnet wird, die man nicht  schließen kann, ohne das Program zu beenden.

Weiß jemand eine Lösung für eine der beiden Varianten? Welche Variante ist in Hinblick auf Windows Vista kompatibilität empfehlenswerter (hab noch keine Erfahrung damit)?

Danke schon mal im voraus für Tipps!

ciao euer mongole


----------



## Wildcard (9. Apr 2008)

Nimm doch Webstart.


----------



## Guest (9. Apr 2008)

Hab ich da was falsch verstanden?

Web start ist doch eher ein Ersatz für Java Aplets und kein Autostart für Desktop Aplikationen, oder?


----------



## Wildcard (9. Apr 2008)

Nein, ist kein Ersatz für Applets, sondern ein Deployment Mechanismus für Desktop Applikationen. Automatisches Update, Verknüpfungen auf dem Desktop,...
Hatte dich aber falsch verstanden, es geht dir ja nicht um Startmenü Einträge oder ähnliches, sondern um Autostart.


----------



## Guest (10. Apr 2008)

OK. Danke für den Tipp! Startmenüeinträge sind natürlich auch fein. Werd ich mir bei gelegenheit mal genauer anschaun. Wenn Autostart noch unterstützt wird, dann wär's sowieso genial


----------



## Guest (11. Apr 2008)

Hallo!

Ich bin dem ganzen einen Schritt näher gekommen.    ich habe nun gesehen, dass er bei dem Start über den Registry Key _HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run_ eine Dos Box anzeigt mit Fehlermeldung. Als ich den den gleichen Befehl in einer Dos Box ausgeführt hab, habe ich erkannt, dass der Aufruf mit _java -jar c:\path\executable.jar_ nicht ausreicht, da die realtiven Pfadangeben natürlich in's leere laufen, wenn man vorher nicht in des richtige Verzeichnis wechselt.
Also hab ich _cd "c:\path" & java -jar executable.jar_ versucht. Und siehe da, in der Dos Box funktioniert's wunderbar. Nur, wenn ich den gleichen Befehl unter dem Registry Key ablege, passiert gar nichts    Ich hab dann versucht die Ausgabe mit _ 1> c:\tool.log 2>&1_ in eine Datei umzuleiten. Funktioniert in der Dos Box wunderbar nur unter dem Registry Key passiert wieder gar nix. Woran kann das liegen?

Danke für eure Hilfe!

lg,
Andreas


----------



## Wildcard (11. Apr 2008)

Das ist keine Dos Box, sondern der Kommandozeileninterpreter deines Betriebssystems. Mit Dos hat das sowas von nichts zu tun  :autsch: 
Du solltest deine Implementierung so ändern, das sie sich nicht auf relative Pfade verlässt. Wofür genau brauchst du einen relativen Pfad?


----------



## Guest (15. Apr 2008)

Das das kein Dos mehr ist, ist mir schon klar. Nur die Befehle sind immer noch gleich besch"§$en wie zu Dos zeiten ;-) Ich geb's ja zu, eine bash oder ksh ist mir halt um welten lieber. vor allem mit einem haufen gscheiter gnu tools 
So hat halt jeder seine Vorlieben...

Wenn ich die Pfade nicht relativ mache, dann muss die Aplikation wissen, wo sie installiert ist. Aber die Pfade sind ja nicht das eigentliche Problem. Durch sie, merk ich ja nur, dass das Program gestartet wird (weil ich die fehlermeldung bekomme). Wenn alles passt, dann bekomme ich einfach keinen output und die Aplikation startet nicht. 

Das macht mir mehr Bauchweh!

Hast die vieleicht einen Idee dazu? Aja, auf jeden Fall danke für deine Bemühungen!

lg,
mongole


----------



## Wildcard (15. Apr 2008)

Wenn du irgendwas in den Autostart platzierst, wirst du wohl wissen müssen wo das Ding liegt.


----------



## Guest (20. Apr 2008)

Danke, hat sich mittlerweile erledigt.


----------



## Gelöschtes Mitglied 5909 (20. Apr 2008)

http://wrapper.tanukisoftware.org/doc/english/introduction.html

wäre noch ne alternative


----------

