Quando instalo o Java, ao final da instalação, ele não detecta no meu sistema:
C:\Windows\system32>where java
INFO: No file could be found for the given patterns.
e
C:\Windows\system32>java -version
"java" is not recognized as an internal or external command,
executable program or batch file.
Somente, quando reinicio o PC, ele detecta
Pergunta: qual comando devo usar pelo cmd para detectar a presença do java instalado (qualquer versão), sem reiniciar o PC?
PD: testado no windows 10 pro x64 21h2
Atualizar:
Eu modifiquei a solução do Carsten.R :
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s /f *jre* >nul 2>&1 & IF %errorlevel% == 0 (echo OK) else (echo FAIL)
Você pode usar a seguinte linha de comando para encontrar o arquivo "java.exe"
Ele assume que o Java está instalado na unidade C. Caso contrário, você pode alterar a letra da unidade no comando.
Se você quiser iterar em cada unidade e parar diretamente quando um resultado for encontrado, você pode usar este comando powershell:
Oi veja meu arquivo de lote abaixo. Isso funciona antes da reinicialização, extrai o caminho de instalação do registro e o adiciona ao caminho de pesquisa do processo cmd atual.
A propósito, o mais recente OpenJDK 17 https://docs.microsoft.com/en-us/java/openjdk/download , funciona exatamente como você gostaria. Não há necessidade de coisas extravagantes.
Se você quiser testar se algo está instalado no Windows consultando as chaves reg de desinstalação são o caminho certo. Pode ser útil para outras aplicações também.
O exemplo é feito com o pacote da Microsoft, as chaves reg podem variar de acordo com as entradas, mas tenho certeza que você pode adotá-lo facilmente.
Aqui um exemplo para jre-8u341-windows-x64.exe