Instalando o JDK no Windows 10 - erro 1610 do MsiEnumProducts devido à biblioteca WBEM / biblioteca WMI quebrada

0

Eu falho em instalar o JDK 8 em uma instalação x64 do Windows 10 ou atualizar de qualquer versão anterior para a versão atualizada.

Após a atualização usual do Java falhar sem nenhuma mensagem de erro,

  • Decidi fazer uma reinstalação limpa e excluí todas as versões antigas com o Seu Desinstalador e também removi manualmente os diretórios restantes e também a variável JAVA_HOME .

  • Eu então baixei o instalador do JDK. Ao executar o instalador, não recebo nenhuma mensagem de erro, ele simplesmente falha silenciosamente.

  • Eu tentei o modo de segurança, direitos de administrador e / ou sem software antivírus, sem sucesso.

  • deu uma olhada no log de eventos. É em alemão, e é por isso que não copio / colo isso agora, mas basicamente diz que jdk-8u65-windows-x64.exe falhou com o erro 0x40000015 , que é apenas a "exceção de software desconhecida".
  • então eu olhei em% TEMP%. Lá, em cada instância de jdk-8u65-windows-
    x64.exe
    , um log é mantido em jusched.log . Eu sempre recebi o erro MsiEnumProducts(75) failed with error=[1610] .
  • então eu olhei para qualquer sobra de instalações antigas no meu Windows; Eu corri um AutoFix da minha versão antiga do seu instalador que verifica que, e também uma sessão CCleaner, mas sem erros significativos foram encontrado.

  • Também verifiquei se há alguma boa possibilidade de manualmente instalando o JDK 8 x64, mas não encontrou nenhum link realmente útil. Então Eu tentei descompactar o instalador com 7-zip. Eu descompactei a árvore de pastas em C:\Program Files\Java\jdk1.8.0_66\ e defina JAVA_HOME novamente mas quando tentei apontar o IntelliJ IDEA para esse diretório como meu JDK, ficava me dizendo que "não é um diretório JDK válido" (também nenhum dos subdiretórios), embora os arquivos Java estejam presentes no \bin . Então, em seguida fui reinstalar o JDK 6 (funcionou), então atualização para 7 (funcionou); mas ainda assim, a atualização para o JDK 8 falhou como antes.

    Então tentei instalar o JRE em vez do JDK como um teste, mas o JRE 8 falha da mesma maneira que o JDK 8, sem nenhum erro visível. O log de erros em jusched.log agora difere antes de qualquer JDK ser instalado.
    Aqui está o que diz agora em uma tentativa de instalação do JDK 8 (vou cortar todas as coisas de configuração que aparentemente não produziram erros):

[2015/10/22 18:29:09.178, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), MsiUtils.cpp:308 (msi::anonymous-namespace'::makeMessage)] ERROR: Exception with message 'Resources.cpp(66) at Resource::getPtr(): cannot find resource (name='#259', type='#6'). System error [1814](system error 1814 (Der angegebene Ressourcenname wurde nicht in der Image-Datei gefunden))' caught [2015/10/22 18:29:09.179, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:89 (anonymous-namespace'::getMsiProperty)] ERROR: Exception with message 'MsiUtils.cpp(268) at msi::Database::getProperty(): MsiViewFetch(C:\WINDOWS\Installerc487c.msi, SELECT Value FROM Property WHERE Property = 'FullVersion') failed. MSI error [259]' caught [2015/10/22 18:29:09.179, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:451 (anonymous-namespace'::getInstalledJava)] TRACE: InstalledJava(1.6.0_45|1.6.0_45|JDK|64bit|C:\Program Files\Java\jdk1.6.0_45|{64A3A4F4-B792-11D6-A78A-00B0D0160450}|-10) [2015/10/22 18:29:09.180, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:489 (JavaEnvironment::detect)] TRACE: Installed Java detected: version=1.7.0; arch=64; productCode={64A3A4F4-B792-11D6-A78A-00B0D0170800}; type=1 [2015/10/22 18:29:09.180, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:139 (anonymous-namespace'::detectHomeDir)] TRACE: Find home dir of {64A3A4F4-B792-11D6-A78A-00B0D0170800} Java installation [2015/10/22 18:29:09.180, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:303 (anonymous-namespace'::detectFullVersion)] TRACE: Detect full version of {64A3A4F4-B792-11D6-A78A-00B0D0170800} Java installation [2015/10/22 18:29:09.181, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:214 (anonymous-namespace'::detectFullVersionFromMsi)] TRACE: detectFullVersionFromMsi({64A3A4F4-B792-11D6-A78A-00B0D0170800}) [2015/10/22 18:29:09.187, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), MsiUtils.cpp:308 (msi::anonymous-namespace'::makeMessage)] ERROR: Exception with message 'Resources.cpp(66) at Resource::getPtr(): cannot find resource (name='#259', type='#6'). System error [1814](system error 1814 (Der angegebene Ressourcenname wurde nicht in der Image-Datei gefunden))' caught [2015/10/22 18:29:09.187, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:89 (anonymous-namespace'::getMsiProperty)] ERROR: Exception with message 'MsiUtils.cpp(268) at msi::Database::getProperty(): MsiViewFetch(C:\WINDOWS\Installerc4882.msi, SELECT Value FROM Property WHERE Property = 'FullVersion') failed. MSI error [259]' caught [2015/10/22 18:29:09.188, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:451 ('anonymous-namespace'::getInstalledJava)] TRACE: InstalledJava(1.7.0_80|1.7.0_80|JDK|64bit|C:\Program Files\Java\jdk1.7.0_80|{64A3A4F4-B792-11D6-A78A-00B0D0170800}|-10)

e em uma tentativa de instalação do JRE 8:

[2015/10/22 18:31:56.888, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:472 (JavaEnvironment::detect)]
    TRACE: Entering JavaEnvironment::detect
[2015/10/22 18:31:56.929, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:489 (JavaEnvironment::detect)]
    TRACE: Installed Java detected: version=1.7.0_80; arch=64; productCode={26A24AE4-039D-4CA4-87B4-2F06417080FF}; type=0
[2015/10/22 18:31:56.931, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:139 ('anonymous-namespace'::detectHomeDir)]
    TRACE: Find home dir of {26A24AE4-039D-4CA4-87B4-2F06417080FF} Java installation
[2015/10/22 18:31:56.940, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:303 ('anonymous-namespace'::detectFullVersion)]
    TRACE: Detect full version of {26A24AE4-039D-4CA4-87B4-2F06417080FF} Java installation
[2015/10/22 18:31:56.940, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:214 ('anonymous-namespace'::detectFullVersionFromMsi)]
    TRACE: detectFullVersionFromMsi({26A24AE4-039D-4CA4-87B4-2F06417080FF})
[2015/10/22 18:31:56.948, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:327 ('anonymous-namespace'::detectJreMode)]
    TRACE: Detect mode of {26A24AE4-039D-4CA4-87B4-2F06417080FF} Java installation
[2015/10/22 18:31:56.949, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:451 ('anonymous-namespace'::getInstalledJava)]
    TRACE: InstalledJava(1.7.0_80-b15|1.7.0_80-b15|JRE|64bit|C:\Program Files\Java\jre7|{26A24AE4-039D-4CA4-87B4-2F06417080FF}|10)
[2015/10/22 18:31:56.950, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:489 (JavaEnvironment::detect)]
    TRACE: Installed Java detected: version=1.6.0_45; arch=64; productCode={26A24AE4-039D-4CA4-87B4-2F86416045FF}; type=0
[2015/10/22 18:31:56.951, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:139 ('anonymous-namespace'::detectHomeDir)]
    TRACE: Find home dir of {26A24AE4-039D-4CA4-87B4-2F86416045FF} Java installation
[2015/10/22 18:31:56.956, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:303 ('anonymous-namespace'::detectFullVersion)]
    TRACE: Detect full version of {26A24AE4-039D-4CA4-87B4-2F86416045FF} Java installation
[2015/10/22 18:31:56.956, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:214 ('anonymous-namespace'::detectFullVersionFromMsi)]
    TRACE: detectFullVersionFromMsi({26A24AE4-039D-4CA4-87B4-2F86416045FF})
[2015/10/22 18:31:56.963, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:327 ('anonymous-namespace'::detectJreMode)]
    TRACE: Detect mode of {26A24AE4-039D-4CA4-87B4-2F86416045FF} Java installation
[2015/10/22 18:31:56.964, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:451 ('anonymous-namespace'::getInstalledJava)]
    TRACE: InstalledJava(1.6.0_45-b06|1.6.0_45-b06|JRE|64bit|C:\Program Files\Java\jre6|{26A24AE4-039D-4CA4-87B4-2F86416045FF}|10)
[2015/10/22 18:31:56.964, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:489 (JavaEnvironment::detect)]
    TRACE: Installed Java detected: version=1.6.0; arch=64; productCode={64A3A4F4-B792-11D6-A78A-00B0D0160450}; type=1
[2015/10/22 18:31:56.965, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:489 (JavaEnvironment::detect)]
    TRACE: Installed Java detected: version=1.7.0; arch=64; productCode={64A3A4F4-B792-11D6-A78A-00B0D0170800}; type=1
[2015/10/22 18:31:56.968, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), JavaEnvironment.cpp:0 (JavaEnvironment::detect)]
    TRACE: Exiting JavaEnvironment::detect (entered at JavaEnvironment.cpp:472)
[2015/10/22 18:31:56.969, jre-8u65-windows-au.exe (PID: 9704, TID: 6008), jinstall.cpp:1392 (WinMain)]
    ERROR: Exception with message 'KnownProductCodeInstalledJavaTracker.cpp(205) at KnownProductCodeInstalledJavaTracker::next(): MsiEnumProducts(78) failed with error=[1610]' caught

Assim, em resumo, a instalação falha porque o MsiEnumProducts aparentemente lista alguma instalação, presumivelmente alguma instalação Java antiga, que não foi encontrada ou o instalador não foi encontrado. Mas como posso descobrir o que está faltando? Ou qual entrada de registro é redundante? Procurei as entradas do registro mencionando JDK ou C:\Program Files\Java e encontrei algumas que pareciam redundantes, e as excluí, mas isso também não alterou nada.

Na web e na SE, encontrei muitas perguntas que apontavam para o mesmo problema, mas raramente abordavam o núcleo (provável) do problema, a falha MsiEnumProducts. Especificamente estes dois neste site.

Alguma dica sobre essa situação complicada?

Se eu não soubesse melhor, eu diria que a dica para a origem do erro é:

[2015/10/22 18:29:09.181, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), JavaEnvironment.cpp:214 ('anonymous-namespace'::detectFullVersionFromMsi)]
    TRACE: detectFullVersionFromMsi({64A3A4F4-B792-11D6-A78A-00B0D0170800})
[2015/10/22 18:29:09.187, jdk-8u65-windows-x64.exe (PID: 6068, TID: 1808), MsiUtils.cpp:308 (msi::'anonymous-namespace'::makeMessage)]
    ERROR: Exception with message 'Resources.cpp(66) at Resource::getPtr(): cannot find resource (name='#259', type='#6'). System error [1814](system error 1814 (Der angegebene Ressourcenname wurde nicht in der Image-Datei gefunden))' caught

Então, basicamente, minha pergunta é antes de todas as outras, como eu descubro, que recurso é # 259 tipo # 6 e onde ele está registrado?

    
por cirko 22.10.2015 / 18:49

2 respostas

1

Eu não consegui encontrar uma solução adequada para o problema em tempo adequado e a necessidade de ter o Java 8 rodando no dispositivo tornou-se muito urgente, então eu tive que fazer uma reinstalação limpa do Windows 10, e depois disso, tudo funcionou. Antes disso, eu cavava um pouco mais:

  • Descobri que no Windows PowerShell, wmic product não funcionou e sempre encerrei com um "erro geral", que foi registrado no log de eventos como "erro genérico" (esqueci o erro exato # , mas foi inespecífico).

  • Eu também tentei reconstruir o subdiretório wbem em system32 , que é basicamente o repositório do WMI para Windows, com a ajuda do tutorial , mas isso também não resolveu o problema

Portanto, em conclusão, posso dizer que esse tipo de falha durante a instalação do JDK é um sintoma de uma biblioteca de instalação WMI (Windows Management Instrumentation) quebrada e o método MsiEnumProducts, usado pelo JDK, falha com um erro geral . O erro pode ser reproduzido sem a instalação do JDK quando você verifica o status da biblioteca do produto WMI inserindo wmic product no Windows Powershell. Portanto, o erro provavelmente não é específico para a instalação do JDK, mas o uso dessa enumeração pode ser tão raro que o erro geralmente raramente tem um impacto no sistema e, portanto, é relatado apenas raramente. Talvez pela mesma razão, uma solução real, na minha opinião, para esta data não existe, então tudo o que posso dizer é que se você encontrar esse erro no seu sistema, economizar seu tempo e fazer uma reinstalação limpa do Windows, custará você tem menos tempo do que avaliar isso.

Quanto às origens deste problema, IMHO é muito difícil dizer. Eu me considero um usuário experiente, manipulando o registro de tempos em tempos, executando limpadores quando eles são necessários, e assim por diante, mas esta seria a primeira vez em 20 anos de Windows que eu realmente quebrei o registro, e Eu não sabia nem quando ou com o quê. Outra opção, na minha opinião, é que eu atualizei para o Windows 10 a partir do Windows 8.1, não tendo uma reinstalação limpa, e eu estava usando o Windows 8.1 por um bom tempo antes. Também encontrei o bug em que o WiFi está corrompido se um cliente VPN estiver presente durante a atualização do Windows 10 e Eu não ficaria surpreso se a atualização deixasse outros danos colaterais, devido a alguma incompatibilidade ou inconsistência profundamente enterrada.

[tl; dr] Se você encontrar o erro mencionado acima, faça uma reinstalação limpa do Windows 10 se realmente precisar usar o JDK 8 ou quiser evitar possíveis problemas com outros instaladores no futuro, e se você não o fizer Acredito que haverá um hotfix milagroso da Microsoft em um futuro próximo em relação a uma biblioteca de instalação do WMI quebrada.

    
por 25.10.2015 / 23:38
2

Eu enfrentei o mesmo problema e descobri que minha lista de produtos ( HKEY_CURRENT_USER\Software\Microsoft\Installer\Products ) estava quebrada. Sempre verifique isso, assim como HKEY_CLASSES_ROOT\Installer\Products . Ter alguns IDs ruins (como aquele com sublinhado) pode levar o Instalador do Micorosoft a reportar ERROR_BAD_CONFIGURATION (1610).

    
por 10.05.2016 / 18:59