NSIS - 在运行之前设置进程的工作目录

时间:2011-12-28 11:37:23

标签: java process nsis

如上所述。 我使用ExecWait专门运行Java程序,通过调用java.exe并传递类名。我正在运行的应用程序依赖于相对路径,必须从特定目录运行,但是当我直接调用java时,它只是使用安装程序位置作为当前目录而失败。

有没有办法解决这个问题?

更新:这是我的命令行:

ExecWait "$INSTDIR\MyApp\jre\bin\java.exe -cp $INSTDIR\MyApp\lib\*; MyJavaClassName"

1 个答案:

答案 0 :(得分:10)

SetOutPath设置进​​程的当前/工作目录,它应该由子进程继承...

Push $OUTDIR
SetOutPath $myspecialdir
ExecWait '"$instdir\myapp.exe"'
Pop $OUTDIR
SetOutPath $OUTDIR # Optional if working directory does not matter for the rest of the code

SetOutPath $myspecialdir
ExecWait '"$instdir\myapp.exe"'
SetOutPath $instdir