Comment déterminer si la machine virtuelle Java est installée sur Windows?


En utilisant le code, comment déterminer la machine virtuelle Java est installée(et sa version) dans Windows .

Author: smas, 2011-03-19

5 answers

En supposant que vous souhaitiez déterminer cela par programme à partir d'un fichier batch, vous pouvez utiliser l'outil reg.exe, installé dans windows\system32.

La chose ennuyeuse à propos de cet outil est qu'il n'y a aucun moyen de le faire renvoyer uniquement un code de sortie, vous devez donc supprimer sa sortie via une redirection vers nulle part. Et il génère également un message d'erreur lorsque la valeur n'existe pas.

@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

Choses à noter:

  • Il y a deux redirections vers le périphérique nul, une pour la sortie standard et une pour erreur standard.
  • La détection se fait séparément de l'analyse de la valeur pour éviter d'afficher un message ERROR... lorsque la valeur n'existe pas.
  • Il y a un caractère d'espace après l'option delims= (puisque l'espace est le délimiteur).
  • Le fichier batch renvoie un niveau d'erreur / code de sortie de zéro en cas de succès (installé) ou de 1 en cas d'échec (non installé).

J'espère que ça aide.

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

Je pense que vous êtes peut-être intéressé à les appeler:

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

Oracle deployJava.js peut non seulement vérifier qu'une version minimale particulière de Java est disponible sur la machine de l'utilisateur, mais s'ils sont sous Windows, les guider à travers le téléchargement et l'installation si nécessaire.

Normalement deployJava.js est utilisé pour fournir des boutons de lancement pour les applications lancées à l'aide de Java Web Start & applets , vous pouvez utiliser le formulaire JWS pour créer un lien vers un fichier Jar " nu " (sans dépendances).

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

Il n'y a aucun moyen de détecter si la JVM est installée ou non à partir de code Java. Le code Java ne peut pas s'exécuter sans que la JVM soit présente. Par conséquent, si vous êtes en mesure d'exécuter le code compilé, la JVM est installée.

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

Je ne considère pas vraiment qu'une JVM peut être installée sur Windows. Il me serait plus pertinent de vérifier si vous avez un JRE dans un répertoire de votre disque dur, et si ce JRE est facilement accessible via une référence de son dossier bin dans la variable d'environnement PATH.

Vous pouvez vérifier cela en essayant d'exécuter java -version à partir du code et en collectant la sortie.

Si vous obtenez un message indiquant 'java' is not recognized as an internal or external command, operable program or batch file., alors votre jre n'est pas référencé.

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