2010-09-28 9 views

Répondre

3

Obtention de la version et écriture dans un fichier temporaire. Alors seulement analyser la version elle-même:

@echo off 
echo off 
java -version 2> tmp_java_version.txt 
set /p JAVA_VERSION= < tmp_java_version.txt 
del tmp_java_version.txt 
set JAVA_VERSION=%JAVA_VERSION:~14,3% 

echo %JAVA_VERSION% 
pause > NUL 
+0

belle. vous pouvez éviter le fichier temporaire si vous utilisez la commande for –

+0

Cela peut être le cas où java n'est pas défini dans path mais installé. –

+0

Afaik, si Java est installé, il y a aussi un fichier java.exe dans le répertoire System32, ce qui signifie que java peut être appelé à partir de chaque position dans le shell. Par conséquent, il ne devrait pas y avoir de problème. Peut-être que le var est vide, mais vous devez le vérifier quand même. –

0
java -version 

Vous pouvez également utiliser la commande

java -fullversion 

et produire une sortie tels que:

java version complète "1.6.0_17-b04"

Sur un ordinateur sans aucune version de Java de Sun Microsystems installé, un message d'erreur apparaît:

'jav a 'n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier séquentiel.

Dans un lot que vous pourriez faire:

@echo off 
java.exe -fullversion 2> c:\temp\out.txt 
for /F "tokens=4" %%i IN (c:\temp\out.txt) DO echo %%i 

Vous ne pouvez pas éviter le fichier temporaire car la sortie java.exe écrit sur l'erreur standard! Vous devez donc rediriger l'erreur standard vers un fichier.

0

si vous pouvez télécharger et gawk pour Windows.

C:\test>java -version 2>&1 | gawk "NR==1{print $3}" 
"1.6.0_16" 
0

Dans l'invite de commmand vous pouvez simplement taper a java -version.

Par exemple:

D:\Users> java -version 

alors vous obtiendrez la réponse que

java version 1.8.0_11 
Questions connexes