2009-08-20 19 views
0

Ich habe eine geänderte Java Launcher EXE-Datei geschrieben in NSIS, die eine JAR-Datei (http://nsis.sourceforge.net/A_slightly_better_Java_Launcher) startet. Ich möchte in den JAR einen Parameter übergeben, der der absolute Pfad der Datei ist, die die exe aufgerufen hat.NSIS Anrufer Dateipfad

In einer BAT-Datei kann ich "start MyApp.jar% 1" verwenden, und das füllt den ABS-Pfad, aber das kann nicht in NSIS getan werden (oder ich schreibe es nicht richtig, weil mein Parameter wörtlich kommt als "% 1").

Ich möchte meinen Befehl sein: javaw -jar MyApp.jar AbsolutePath

Hier ist meine Linie zur Zeit, dass ich diesen Pfad hinzugefügt wollen:

strcpy $ 0 ‚ "$ R0" -jar„$ {JAR} "'

Alle Vorschläge wären willkommen. Vielen Dank.

Antwort

0

Hier ist die Zeile, die in den "open" -Befehl für meine Dateierweiterung eingegeben wird. Im Register R7 habe ich den Pfad auf "javaw.exe" gesetzt. Diese Methode (GetJRE genannt) befindet sich im Link in meiner Frage. Windows selbst füllt dann den Parameter der Datei, die mein jar aufruft, und übergibt es als Parameter.

$ {registerExtension} "$ R7 $ \" -jar -Djava.library.path = $ \ "$ INSTDIR $ \" $ \ "$ INSTDIR \ Viewer.jar" ".YourExtension" "YourExtension File"

$ {unregisterExtension} ".IhreErweiterung" "YourExtension Datei"

0

% 1 muss nicht den absoluten Pfad sein, es ist nur der erste Parameter, ist es auch ein relativer Pfad sein könnte (oder auch nicht ein Weg überhaupt)

In diesem Fall $ {GetParameters} unter Verwendung von FileFunc.nsh sollte Ihren Anforderungen entsprechen, obwohl es Ihnen jeden Parameter gibt, nicht nur den ersten

+0

Dank Anders. Ich versuche herauszufinden, wie man diese Funktion benutzt, aber das scheint mir zu helfen. – Ken

+0

Fügen Sie einfach die Header-Datei ein und verwenden Sie $ {GetParameters} $ 1, um die Parameter in $ 1 zu erhalten – Anders