为什么NSIS检查JRE被破坏?

为什么NSIS检查JRE被破坏?,nsis,Nsis,为什么这个脚本在不需要安装jre的情况下尝试安装jre?我验证了C:\Windows\System32\java.exe确实存在,但是这个脚本没有看到它。该脚本的目标是XP、Vista、32位和64位。剧本!包括x64.nsh。第一个ElseIf的原因是javaw.exe有时安装在64位系统上的C:\Windows\System32\中。这个逻辑是假的吗?如果是,怎么做?使用C:\Windows\System32\javaw.exe是否不正确 ${If} ${FileExists} `$SYSD

为什么这个脚本在不需要安装jre的情况下尝试安装jre?我验证了
C:\Windows\System32\java.exe
确实存在,但是这个脚本没有看到它。该脚本的目标是XP、Vista、32位和64位。剧本!包括
x64.nsh
。第一个ElseIf的原因是javaw.exe有时安装在64位系统上的
C:\Windows\System32\
中。这个逻辑是假的吗?如果是,怎么做?使用
C:\Windows\System32\javaw.exe
是否不正确

${If} ${FileExists} `$SYSDIR\javaw.exe`
    ; Skip JRE install
${ElseIf} ${FileExists} `C:\Windows\System32\javaw.exe`
    ; Skip JRE install
${ElseIf} ${RunningX64}
    ExecWait '"jre-6u22-windows-x64.exe"'
${Else}
    ExecWait '"jre-6u22-windows-i586-s.exe"'
${EndIf}

需要,除非阻止并禁用x64fsredirection

${If} ${RunningX64} 
    ${DisableX64FSRedirection} 
    ${Unless} ${FileExists} "$SYSDIR\javaw.exe" 
        ExecWait '"jre-6u22-windows-x64.exe"'
    ${EndUnless} 
    ${EnableX64FSRedirection} 
${Else}  
    ${Unless} ${FileExists} "$SYSDIR\javaw.exe" 
        ExecWait '"jre-6u22-windows-i586-s.exe"'
    ${EndUnless} 
${EndIf}