Come determinare se la VM Java è installata su Windows?


Utilizzando il codice, come determinare la VM Java è installata(e la sua versione) in Windows .

Author: smas, 2011-03-19

5 answers

Supponendo che si desideri determinare programmaticamente questo da un file batch, è possibile utilizzare lo strumento reg.exe, installato in windows\system32.

La cosa fastidiosa di questo strumento è che non c'è modo di farlo restituire solo un codice di uscita, quindi devi sopprimere il suo output tramite il reindirizzamento verso il nulla. E genera anche un messaggio di errore quando il valore non esiste.

@echo off
rem
rem DetectJvmInstalled.cmd
rem
reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion" > nul 2> nul
if errorlevel 1 goto NotInstalled

rem Retrieve installed version number.
rem The reg.exe output parsing found at http://www.robvanderwoude.com/ntregistry.php
set JvmVersion=
for /F "tokens=3* delims= " %%A IN ('reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion"') do set JvmVersion=%%A
rem if "%JvmVersion%" == "" goto NotInstalled

:Installed
echo JVM Version = %JvmVersion%
exit /b 0

:NotInstalled
echo JVM Not installed.
exit /b 1

Cose da notare:

  • Ci sono due reindirizzamenti al dispositivo nul, uno per lo standard output e uno per errore standard.
  • Il rilevamento viene eseguito separatamente dall'analisi del valore per evitare di mostrare un messaggio ERROR... quando il valore non esiste.
  • C'è un carattere spazio dopo l'opzione delims= (poiché lo spazio è il delimitatore).
  • Il file batch restituisce un livello di errore / codice di uscita pari a zero in caso di successo (installato) o 1 in caso di errore (non installato).

Spero che aiuti.

 6
Author: devstuff, 2011-03-19 18:01:04

Penso che forse sei interessato a chiamare questi:

System.getProperty("os.name");
System.getProperty("java.version");
 5
Author: WhiteFang34, 2011-03-19 15:41:26

Di Oracle deployJava.js può non solo controllare una particolare versione minima di Java è disponibile sul computer dell'utente, ma se sono su Windows, guidarli attraverso il download e l'installazione, se necessario.

Normalmente distribuiscejava.js viene utilizzato per fornire pulsanti di avvio per le applicazioni avviate utilizzando Java Web Start & applet , è possibile utilizzare il modulo JWS per collegarsi a un file Jar 'nudo' (senza dipendenze).

 4
Author: Andrew Thompson, 2017-05-23 12:19:53

Non c'è modo di rilevare se la JVM è installata o meno dal codice Java. Il codice Java non può essere eseguito senza la presenza della JVM. Quindi, se si è in grado di eseguire il codice compilato, la JVM è installata.

 3
Author: Michael, 2011-03-19 15:18:54

Non considero davvero che una JVM possa essere installata su Windows. Mi sarebbe più rilevante verificare se si dispone di un JRE all'interno di una directory del disco rigido e se questo JRE è facilmente accessibile tramite un riferimento della sua cartella bin nella variabile d'ambiente PATH.

Puoi verificarlo provando a eseguire java -version dal codice e raccogliendo l'output.

Se ricevi un messaggio che indica 'java' is not recognized as an internal or external command, operable program or batch file., il tuo jre non viene referenziato.

 2
Author: Dunaril, 2011-03-19 15:30:26