PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verknüpfung erstellen (InnoSetup o. Java)



Herb
07.05.2011, 17:36
Ich hole erst einmal ein wenig aus, damit ihr versteht worum es geht.

Also ich habe ein kleines Javaprogramm geschrieben und es Jar File abgespeichert. Da dieses Programm noch externe Datein benötigt, habe ich mir überlegt ein Setup programm zu erstellen.
Dadurch bin ich auf Inno Setup gestoßen. Es funktioniert nun alles ganz gut, nur dass die Verknüpfungen, die Inno Setup anlegt nicht funktionieren, da es der Verknüpfung nur einen Zielpfad angibt, aber das Feld: Ausführen in leer lässt.

Weiß jemand wie ich das einstellen kann? Oder weiß jemand wie ich in Java ein kleine Klasse schreibe, mit der ich eine Verknüpfung erzeugen kann?

PS: Ich suche vorrangig Lösungen für XP (Was sich aber auch durch Verwendung von InnoSetup schließen lässt), aber ich bin auch für plattform unabhängige Lösungen offen ;)

Vielen Dank schonmal im Vorraus:)

drunken monkey
08.05.2011, 10:10
Leider sind Verknüpfungen eine sehr Microsoft-spezifische Sache (zumindest in der Form, in der sie in XP sind – was ich nach kurzer Recherche gelesen habe, gibt's ab Vista echte Symbolic Links), die daher in Java afaik nicht wirklich unterstützt ist. Wenn du einen Command-Line-Befehl findest, mit dem du eine Verknüpfung erstellen kannst, könntest du den dann mit

Runtime.getRuntime().exec(command);
ausführen. (Natürlich, nachdem du geprüft hast, dass du auch wirklich unter Windows bist, und nachdem du die Argumente escapet hast, falls sie User-Input in irgendeiner Form enthalten.)
Allerdings habe ich bei einer kurzen Suche keinen solchen Befehl gefunden. :-/

Hier zwei relevante Frage-Threads, die ich gefunden habe:
Creating shortcuts from Java code (http://www.tikalk.com/java/forums/help-create-shortcut-windows-java-code)
Creating shortcuts from the command line (http://www.tomshardware.co.uk/forum/52871-35-creating-desktop-shortcuts-command-line)

Falls alles andere nicht hilft, könntest du noch immer anschauen, wie das Binär-Format von Verknüpfungen ausschaut, und die notfalls auf diese Weise selber erstellen. So kompliziert wird das Format ja wahrscheinlich nicht sein. Weiß aber nicht, ob dir das die Mühe wert ist.

Herb
11.05.2011, 20:07
Sorry, das ich mich so spät melde, hatte Inet Probleme.

Also mir ist es nun gelungen in Java einen VBS Script zu schreiben, der sich auch manuel ausführen lässt. Dieser Script schreibt nun meine Verknüpfung. Nun soll Java diesen Script aufrufen.
Ich bin da auch wie du vorgegangen:


Runtime.getRuntime().exec("Pfad zur Datei");

allerdings funktiniert das nicht. Liegt es daran, das die Datei kein exe ist? Wenn ja lässt sich die VBS anders aufrufen?


/Edit:

Ich habe die Lösung bereit gefunden:



Runtime.getRuntime().exec ("rundll32 url.dll,FileProtocolHandler Pfad zur Datei");


Vielen Dank das du/ihr mir helfen wolltest.

(PS: Andere Beiträge von dir waren mir bereits auch schon nützlich ;) Vielen Dank dafür)