Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过wix引导检测JRE 8是否集成_Java_C#_Windows Installer_Wix3.5_Wix3.7 - Fatal编程技术网

Java 如何通过wix引导检测JRE 8是否集成

Java 如何通过wix引导检测JRE 8是否集成,java,c#,windows-installer,wix3.5,wix3.7,Java,C#,Windows Installer,Wix3.5,Wix3.7,我正在使用wix引导来安装Java运行时。但我无法检测到JRE。我的代码如下。安装程序将始终安装JRE(即使它是预安装的)。但不会卸载 看来我的检测条件不对。但是我找不到正确的方法。请帮忙 ''' ''看起来您可能正在安装64位系统。您是否知道在运行32位进程(如引导程序)时会发生64位注册表重定向?@Doc,是的,我正在安装到64位系统。我实际上构建了64位的安装程序。“您知道在运行32位进程(如引导程序)时发生的64位注册表重定向吗?”-实际上我不知道这一点。请您提供一些链接来帮助我获取

我正在使用wix引导来安装Java运行时。但我无法检测到JRE。我的代码如下。安装程序将始终安装JRE(即使它是预安装的)。但不会卸载

看来我的检测条件不对。但是我找不到正确的方法。请帮忙

'''



''

看起来您可能正在安装64位系统。您是否知道在运行32位进程(如引导程序)时会发生64位注册表重定向?@Doc,是的,我正在安装到64位系统。我实际上构建了64位的安装程序。“您知道在运行32位进程(如引导程序)时发生的64位注册表重定向吗?”-实际上我不知道这一点。请您提供一些链接来帮助我获取更多信息,打开您的注册表,注意您的64位计算机上有HKLM/Software/WOW6432Node配置单元。让你的代码看一下,看看它是否开始工作。如果是这样,那是你的问题。从那里做一些谷歌搜索,你会发现如何修复它。@Doc,谢谢你提供的信息。我可以在我的电脑中看到“HKLM/Software/WOW6432Node”这个路径,但只有“JavaUpdatePolicy”在那里。我还可以看到“HKLM/Software/JavaSoft/Java插件”和“HKLM/Software/JavaSoft/Java运行时”文件夹。在里面,我找不到任何显示当前版本Java的文件,手动创建注册表项和数据,看看您的引导程序是否正在读取32位的注册表项?我评论的要点是它正在读取哪个注册表配置单元?在64位系统上读取注册表时,这是一个已知的开发问题。
<?xml version="1.0" encoding="UTF-8"?>

<?define Logo = "$(var.ProjectDir)\Resource\app.ico" ?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

  <Bundle Name="MY Installer" Version="1.0.0.0" Manufacturer="ABCD" UpgradeCode="00f3b9ff-f82b-4a06-8ab1-d96de8ade69c"
          IconSourceFile="$(var.Logo)">

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
      <bal:WixStandardBootstrapperApplication
        SuppressOptionsUI ="yes"
        SuppressRepair="yes"
        LicenseUrl=""
        LogoFile="$(var.Logo)" />
    </BootstrapperApplicationRef>

    <util:RegistrySearch
      Id="Java8FamilyVersion"
      Root="HKLM"
      Key="SOFTWARE\JavaSoft\Java Runtime Environment"
      Value="Java7FamilyVersion"
      Variable="Java8FamilyVersion" />

    <util:RegistrySearch
      Root="HKLM"
      Key="SOFTWARE\JavaSoft\Java Runtime Environment\[Java8FamilyVersion]\MSI"
      Value="PRODUCTVERSION"
      Variable="JavaProductVersion"
      After="Java8FamilyVersion"
      Condition="Java8FamilyVersion" />

    <Chain>
      <ExePackage Id="Java8Runtime"
                  DisplayName="Java Runtime Version 8"
                  Cache="no"
                  Compressed="yes"
                  PerMachine="yes"
                  Vital="yes"
                  Permanent="no"
                  Name="Redist\jre-8u271-windows-x64.exe"
                  SourceFile="..\..\Common\Java\jre-8u271-windows-x64.exe"
                  InstallCondition="NOT (JavaProductVersion &gt;v8.0.2710.9)"
                  DetectCondition="Java8FamilyVersion AND (JavaProductVersion &gt;=v8.0.2710.9)" 
                  InstallCommand="/s INSTALL_SILENT=Enable"/>

      
    </Chain>
  </Bundle>
</Wix>