NSIS获取调用者文件路径

时间:2009-08-20 14:24:21

标签: jar nsis parameter-passing

我在NSIS中编写了一个改进的Java Launcher exe文件,它启动了一个JAR文件(http://nsis.sourceforge.net/A_slightly_better_Java_Launcher)。我想传递给JAR一个参数,该参数是调用exe的文件的绝对路径。

在BAT文件中,我可以使用“启动MyApp.jar%1”并填充abs路径,但这似乎无法在NSIS中完成(或者我没有正确编写它因为我的参数字面上是“%1”)。

我希望我的命令是:javaw -jar MyApp.jar AbsolutePath

这是我目前的行,我希望将该路径添加到:

StrCpy $ 0'“$ R0”-jar“$ {JAR}”'

任何建议将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

%1不一定是绝对路径,它只是第一个参数,它也可以是相对路径(或者根本不是路径)

在这种情况下,使用FileFunc.nsh中的$ {GetParameters}应该符合您的需求,即使它为您提供了每个参数,而不仅仅是第一个参数

答案 1 :(得分:0)

这是放入我的文件扩展名的“open”命令的行。在寄存器R7中,我将路径放在“javaw.exe”中。该方法(称为GetJRE)位于我的问题中的链接中。 Windows本身然后填写调用我的jar的文件的参数,并将其作为参数传递。

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

$ {unregisterExtension}“。YourExtension”“YourExtension File”