Erro de Java ao abrir a chave de registro

110

Recebo este erro quando tento fazer qualquer coisa com Java no prompt de comando:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3'
Error: could not find Java.dll
Error: could not find Java 2 Runtime Environment

Eu me enganei com a exclusão de diretórios e registros Java há alguns dias. Eu reiniciei o computador e o java ainda estava funcionando bem, então eu reiniciei novamente hoje e agora recebo este erro. Tentei desinstalar e reinstalar, mas não parece funcionar. Eu tenho o java JRE mais recente instalado e o caminho definido nas variáveis ​​de ambiente. Alguém tem alguma ideia de como consertar isso?

gFu
fonte
Tentei desinstalar o java através do prompt de comando e bagunçou meu desinstalador. Portanto, excluí manualmente a pasta e os registros relativos a ela. Reiniciei e reinstalei o Java depois disso e funcionou bem até minha próxima reinicialização.
gFu
1
Você tenta reinstalar após a reinicialização bagunçou tudo? Talvez a terceira vez seja o charme
Atreys de
Sim, tenho, ainda não funciona.
gFu
Você já tentou fazer backup de outros arquivos e reformatar o computador? Você provavelmente poderia fazer uma nova instalação do Java depois disso. Mas esse método pode ser um exagero
Atreys de
1
De alguma forma, resolvi meu problema específico baixando o runtime, embora já tivesse o JDK instalado. Deixo isso aqui, caso isso realmente funcione para outra pessoa.
Dave

Respostas:

185

Certifique-se de remover qualquer um java.exe, javaw.exee javaws.exede sua Windows\System32pasta e se você tiver um sistema x64 (Win 7 64 bits), faça o mesmo em Windows\SysWOW64.

Se você não conseguir encontrá-los nesses locais, tente excluí-los de C:\ProgramData\Oracle\Java\javapath.

Baha
fonte
7
Depois de remover os executáveis ​​"java" da minha pasta system32, tive que reinstalar o JRE. Depois disso, meu problema foi resolvido. Obrigado pelo ponto de partida.
dangowans
1
Após a instalação de um patch de segurança, não consegui abrir o eclipse por causa desse erro. Muito obrigado! Sua solução funcionou. Mas eu me pergunto qual é o verdadeiro motivo aqui.
pvarma
1
Funcionou para mim! Obrigado ! Também tive que reinstalar o JRE.
kbonnelly
1
Você pode me dizer qual é o efeito desses arquivos na pasta system32?
Rabia Naz khan
execute "where java" para ver a localização dos arquivos executáveis ​​mencionados acima. Mine where on C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath
Charis Moutafidis
85

Você encontrará uma pasta chamada " Oracle " na pasta ProgramData na unidade instalada do Windows. Remova a pasta. Espero que funcione. No meu caso, minha unidade de instalação é C e meu caminho é C: \ ProgramData \ Oracle

Shuvankar Paul
fonte
@lese você é bem-vindo. Bom saber que isso está funcionando para você.
Shuvankar Paul de
9
Como alternativa, remova C:\ProgramData\Oracle\Java\javapathda Pathvariável de ambiente do Windows
Gediminas Rimsa
@GediminasRimsa, não tenho certeza se essa variável de ambiente de caminho estará presente em todos os casos. Mas obrigado pelo comentário.
Shuvankar Paul
Removi o caminho das variáveis ​​ambientais, mas ainda tive que remover a pasta Oracle da pasta ProgramData para fazê-lo funcionar.
Irena Rich
@GediminasRimsa Na verdade, tive que remover a variável de ambiente após excluir a pasta Oracle no meu ProgramData
Alyosha_Karamazov
21

Eu tive um problema parecido. Eu tinha instalado a atualização 1 do JDK7, mas não consegui usá-la (provavelmente porque encontrei um JRE6 que excluí após instalar o JDK7). Desinstalar o JDK7 era impossível. A solução foi adicionar as entradas de registro JRE manualmente.

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
"CurrentVersion"="1.7"

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7.0_01]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"

Você terá que ajustar o acima para seus próprios diretórios e versão.

Se isso não ajudar, ainda há JavaRa http://raproducts.org/wordpress/ .

Tilman Hausherr
fonte
Infelizmente, isso não funcionou para nós no Windows Server 2016. Continuamos a obter "o módulo especificado não pôde ser encontrado"
Praxiteles
Lamento saber disso ... tente todas as outras soluções, procure a mensagem de erro ... e se encontrar uma solução, compartilhe-a aqui ou crie uma nova pergunta. No entanto ... "o módulo especificado não foi encontrado" não é a mensagem de erro que foi discutida na pergunta original.
Tilman Hausherr
6

Certifique-se de remover qualquer java.exe, javaw.exe e javaws.exe do seu sistema.

  • se você tiver um sistema x32 (Win XP 32 bits), pasta Windows \ System32

  • se você tiver um sistema x64 (Win 7 64 bits), faça o mesmo na pasta Windows \ SysWOW64

user3740684
fonte
6

Exclua esses 3 arquivos presentes em seu local no caminho C: \ ProgramData \ Oracle \ Java \ javapath

java.exe
javaw.exe
javaws.exe

Isso resolveu o problema para mim :)

shikha singh
fonte
4

Existem 3 locais para verificar

  1. Registro HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ 1.8.0_xxx \ JavaHome
  2. Painel de controle Java - guia Java - Exibir - Caminho
  3. Variáveis ​​de ambiente - caminho ($ env: caminho)

Todos os 3 devem se alinhar (se você tiver várias entradas, remova as erradas) - isso é tudo

Marcin Piaskowski
fonte
4

No Windows 10 acabei de instalar o JDK e recebi esses erros ao verificar a versão. Tive de excluir todos os arquivos executáveis ​​começando com java(ou seja java.exe, javaw.exee javaws.exe) de C:\ProgramData\Oracle\Java\javapath. E então, uma vez excluído, execute novamente o instalador JDK, reinicie meu programa de terminal e java -vfunciona.

joe_the_third
fonte
Tive que fazer isso, mas não precisei reinstalar nada. Excluir o exes corrigiu o problema
Callat
Idem, excluir aqueles .exe consertou isso para mim.
guymac
Foi corrigido no Windows 8 depois de excluir esses arquivos
poovaraj
1

Eu teria marcado isso como um comentário, mas não posso (não tenho o representante), só queria agradecer a Tilman. Eu estava tentando fazer o PDFsam (PDF Split and Merge) funcionar sem sucesso.

Na inicialização, ele produziria um erro informando que não foi possível encontrar o JRE 1.6.0. Tenho as versões de 32 e 64 bits e podem ser obtidas no site java em seus respectivos navegadores.

Tentei desinstalar / reinstalar e reinicializar repetidamente, bem como usar JavaRa. Sem essa sorte, ainda não vou.

Olhei no registro depois de ler esta postagem e não havia nenhuma chave ... \ SOFTWARE \ JavaSoft \, então adicionei cada uma com seus respectivos valores de string apontando para minha versão x86 (PDFsam é um programa de 32 bits). Isso superou o primeiro problema, mas um erro apareceu sobre as bibliotecas amd64, sugerindo que a máquina queria executar a versão de 64 bits. Então mudei os caminhos para o JRE de 64 bits e o PDFsam agora funciona.

Para sua informação - cheguei aqui pesquisando as chaves de registro do Java depois que não consegui iniciar o javaw.exe no prompt de comando (mesmo depois de adicionar os caminhos necessários ao caminho do sistema). As alterações mencionadas também resolveram o problema.

Dizzixx
fonte
1

Eu recebi esse tipo de erro quando eu tinha o JDK 1.7 antes e instalei o JAVA JDK 1.8 e apontei minhas variáveis ​​JAVA_HOME e PATH para a versão JAVA 1.8. Quando tento encontrar a versão java, recebo este erro. Reiniciei minha máquina e funciona. Parece que temos que reiniciar a máquina após modificar as variáveis ​​de ambiente.

user213013
fonte
1

Eu tive o mesmo:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment

Limpar Windows \ SysWOW64 não ajuda para Win7

No meu caso, a instalação do JDK8 offline ajudou (do link )

i-mir
fonte
0

Caso um antivírus (como o McAfee) esteja em execução, tente:

  1. Desativar verificador de vírus
  2. Desinstalar Java (via Painel de Controle / Programas e Recursos)
  3. Reinstale o Java (em Java.com )
  4. Reativar scanner de vírus
zut
fonte
0

Desinstalar Java (via Painel de Controle / Programas e Recursos)

Instale Java JRE 7 -> OFFLINE <- Configure JAVA_HOME e Path = %JAVA_HOME%/bin;%PATH%

dap1995
fonte
0

Tenho o Windows 7. Tive o mesmo problema depois de instalar: PyCharm. Eu não estava satisfeito com o PyCharm, então decidi usar o Eclipse. Foi quando descobri que algo deu errado com meu JDK. Eu costumava ter Java.9.x. Então decidi desinstalá-lo e obter a versão mais recente (na minha época era Java.11.x. O mesmo problema persistia. Eu segui a maioria dos passos mencionados acima no post como: - Remover todos os arquivos java * .exe, - removendo entradas relacionadas ao Java do registro. - Limpando todas as pastas Java desnecessárias. No entanto, nada ajudou. Eu ainda tinha algo no sistema referindo-se a um nome de caminho Java quebrado.

O que realmente trouxe solução foi o seguinte: - Desinstalei qualquer versão do JDK que eu tinha no momento. - Reinstalei a última versão do JDK que eu tinha antes de o problema ocorrer - Desinstale adequadamente essa versão. - Instale qualquer versão mais recente do SDK. ..

É isso .. neste ponto tudo voltou ao normal ... Exceto que o Java.11.xx não corrigiu o caminho do sistema automaticamente, tive que fazer manualmente.

Nowfal
fonte
0

Segui várias respostas acima e resolvi meu problema.

Questão:

Javac estava em 13 de jdk, mas java estava usando 1.8 de jre, então java gerou um erro de tempo de execução incompatível

Consertar:

  1. Em Painel de controle -> Programas: Desinstalei o 1.8 (denominado Java 8 runtime) e NÃO toquei no outro (denominado Java (TM) SE Development Kit 13)

  2. Arquivos java.exe, javac.exe e javawc.exe excluídos de: a. C: \ Windows \ system32 b. C: \ Windows \ SysWOW64 c. C: \ ProgramData \ Oracle \ Java \ javapath

  3. A variável de ambiente JDK_HOME estava apontando para 13, mas JAVA_HOME estava apontando para 1.8, então apontei JAVA_HOME para usar também 13, que era C: \ Arquivos de programas \ Java \ jdk-13.0.1

  4. Havia uma variável de caminho nas seções de variáveis ​​do usuário e variáveis ​​do sistema. Para a seção de variáveis ​​do usuário, adicionei a string% JDK_HOME% - que foi traduzida automaticamente para o caminho físico. Para aquele em variáveis ​​de sistema, excluí o caminho C: \ ProgramData \ Oracle \ Java \ javapath e adicionei C: \ Arquivos de programas \ Java \ jdk-13.0.1 \ bin

Tudo bem agora! Obrigado a todas as pessoas que responderam, você é demais!

Shree Harsha
fonte