2011-12-28 50 views
1

如上所述。 我使用ExecWait專門運行Java程序,通過調用java.exe並傳遞類名。我正在運行的應用程序依賴於相對路徑,必須從特定目錄運行,但是當我直接調用java時,它只是使用安裝程序位置作爲當前目錄並失敗。NSIS - 在運行之前設置進程的工作目錄

有沒有辦法解決這個問題?

更新:這是我的命令行:

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

你能發佈一些命令行嗎? – korifey 2011-12-28 12:03:58

+0

完成後,我只是調用我的應用程序的捆綁JRE以及類名稱。 – Rex 2011-12-29 04:49:09

+1

你應該修復你的報價只是爲了安全:ExecWait'「$ instdir \ app.exe」「參數1」參數2「參數m3」'(路徑等應引用) – Anders 2011-12-29 09:35:13

回答

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 
+0

謝謝,我不知道這也會設置當前目錄:) – Rex 2011-12-29 06:47:28

相關問題