代码之家  ›  专栏  ›  技术社区  ›  jacknad

为什么NSI检查JRE坏了?

  •  0
  • jacknad  · 技术社区  · 15 年前

    为什么这个脚本在不需要时尝试安装JRE?我证实了 C:\Windows\System32\java.exe 确实存在,但此脚本看不到。脚本的目标是xp、vista、32位和64位。剧本!包括 x64.nsh . 第一个elseif的原因是javaw.exe有时安装在 C:\Windows\System32\ 在64位系统上。逻辑是假的吗?如果是,如何?是使用 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}
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   jacknad    15 年前

    除非阻止并禁用64fsRedirection,否则需要。

    ${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}