如上所述。 我使用ExecWait专门运行Java程序,通过调用java.exe并传递类名。我正在运行的应用程序依赖于相对路径,必须从特定目录运行,但是当我直接调用java时,它只是使用安装程序位置作为当前目录而失败。
有没有办法解决这个问题?
更新:这是我的命令行:
ExecWait "$INSTDIR\MyApp\jre\bin\java.exe -cp $INSTDIR\MyApp\lib\*; MyJavaClassName"
答案 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