Forma confiable de encontrar la instalación de JRE en el archivo bat de Windows para ejecutar el progtwig java

Al instalar el último JRE 7 en Windows, ya no agrega el comando java a la ruta del sistema. Así que solo llamar java --version en el archivo bat falla en ese caso (a pesar de que Java desde java.com está instalado).

¿Cuál es una forma confiable de encontrar el directorio de instalación del comando java en un archivo de Windows Bat?

Lo he visto en los siguientes lugares:

  • C:\Program Files\Java\jre6\bin\java.exe
  • C:\Program Files\Java\jre7\bin\java.exe
  • C:\Program Files (x86)\Java\jre7\bin\java.exe
  • No probé JRE 8 todavía.

Nota: si hay varios, me gustaría el predeterminado (o el último, no me importa).

Si está instalado, pregunte a Windows dónde está.

 @echo off setlocal enableextensions disabledelayedexpansion rem Where to find java information in registry set "javaKey=HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" rem Get current java version set "javaVersion=" for /f "tokens=3" %%v in ('reg query "%javaKey%" /v "CurrentVersion" 2^>nul') do set "javaVersion=%%v" rem Test if a java version has been found if not defined javaVersion ( echo Java version not found goto endProcess ) rem Get java home for current java version set "javaDir=" for /f "tokens=2,*" %%d in ('reg query "%javaKey%\%javaVersion%" /v "JavaHome" 2^>nul') do set "javaDir=%%e" if not defined javaDir ( echo Java directory not found ) else ( echo JAVA_HOME : %javaDir% ) :endProcess endlocal 

Así es como encontrarlos.

 Dir c:\java.exe /a/s 

busca todo el disco.

Puedes ponerlo en un bucle for. (en for bucles %A convierte en %%A en un lote)

 @for /f "tokens=1-8 delims=/ " %A in ('dir "c:\program files\java.exe" /a /s^|findstr /i /v /r "DIR VOL \(s\) Listed"') do echo day %A month %B Year %C Name %G 

Esto lo encuentra y pone día mes año en variables separadas.

 For /? dir /? findstr /? 
    Intereting Posts