如何在os中包含一个基于os的jre

时间:2013-06-11 15:02:08

标签: nsis java

我的源代码中有两个jre文件。我根据用户输入创建了两个exe文件,并更改了名为的文件。

现在基于outfile我想要包含jre file.if outfile包含64然后包含64位jre,否则32位jre。 我试过下面的代码。但它没有用?

    !ifdef PLATFORM64
    OutFile setup64.exe
    !else
    OutFile setup32.exe
    !endif 
Function .Oninit
 ${StrContains} $0 "64"  OutFile
 File /oname=$JRE_INSTALLER_FILE_NAME "$TEMP\jre-6u29-windows-x64.exe"
FunctionEnd

问题: 1.如何根据名为?

的outfile包含任何一个jre文件

1 个答案:

答案 0 :(得分:0)

可能是这样的:

!ifdef PLATFORM64
OutFile setup64.exe
!else
OutFile setup32.exe
!endif

Function .Oninit
  var JRE_PLATFORM_FILE
  ${StrContains} $0 "64" $OutFile
    StrCmp $0 "" notfound
      StrCpy $JRE_PLATFORM_FILE "file-name-for-64-bit-JRE"
      Goto done
    notfound:
      StrCpy $JRE_PLATFORM_FILE "file-name-for-32-bit-JRE"
    done:
  File /oname=$JRE_INSTALLER_FILE_NAME $JRE_PLATFORM_FILE
FunctionEnd