【问题标题】:NSIS get caller file pathNSIS 获取调用者文件路径
【发布时间】:2009-08-20 14:24:20
【问题描述】:

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

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

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

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

StrCpy $0 '"$R0" -jar "${JAR}"'

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

【问题讨论】:

    标签: jar nsis parameter-passing


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢安德斯。试图弄清楚如何使用此功能,但这似乎可以帮助我。
    • 只包含头文件并使用${GetParameters} $1获取$1中的参数
    【解决方案2】:

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

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

    ${unregisterExtension} ".YourExtension" "YourExtension 文件"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 2015-08-24
      相关资源
      最近更新 更多