2014-06-11 36 views
0

我为我的java应用创建了一个NSIS安装程序,它工作正常。我想在安装程序的最后添加运行选项复选框。该应用程序使用.bat文件启动。NSIS为MUI_FINISHPAGE_RUN设置javaw类路径

一些谷歌后已将此添加到我的NSIS脚本:

!define MUI_FINISHPAGE_RUN 
!define MUI_FINISHPAGE_RUN_NOTCHECKED 
!define MUI_FINISHPAGE_RUN "$INSTDIR\path\to\myApp.bat" 
!define MUI_FINISHPAGE_RUN_TEXT "Run My App" 
!insertmacro MUI_PAGE_FINISH 

我得到了错误Windows cannot find 'javaw'. Make sure you've typed the name correctly, then try again并根据this的javaw进程路径需要设置,但我推出一个蝙蝠又调用javaw。然而,当我手动运行.bat时,它工作正常。

有没有办法在NSIS安装程序中设置java路径而不必编辑.bat本身?

+0

显示我们批处理文件看起来会有什么帮助... – Anders

回答

1

为什么要在安装程序和javaw之间有一个批处理文件? %Path%和其他环境变量是从父进程继承的。

我不知道,如果你正在更新注册表并发送WM_WININICHANGE,但如果你需要启动一个子进程有更新的环境,那么你还需要更新直接安装过程:

System::Call 'KERNEL32::SetEnvironmentVariable(t "name", t "value")i.r0' ; $0 is 0 on error...