10
votes

Obtenez la version Java à partir de lotts

Comment obtenir la version Java et que vous souhaitez obtenir "6" de la version Java à partir du fichier de lot. J'ai essayé en dessous du script, mais cela n'a pas fonctionné.

    REM check java exists using JAVA_HOME system variable

if "%JAVA_HOME%" == "" (
ECHO Installing java
start /w jdk.exe /s
SETX -m JAVA_HOME "C:\Program Files\Java\jdk1.6.0_31"
ECHO java installed successfully
) ELSE (
ECHO checking java version
goto check_java_version
)

REM check java version using JAVA_HOME system variable
:check_java_version
set PATH=%PATH%;%JAVA_HOME%\bin
for /f tokens^=2-5^ delims^=.-_^" %%j in ('%JAVA_HOME%/bin/java -version 2^>^&1') do set "jver=%%j%%k%%l%%m"
echo %jver%


0 commentaires

5 Réponses :


19
votes
@echo off
PATH %PATH%;%JAVA_HOME%\bin\
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m"

11 commentaires

Comment imprimer la valeur de la société. J'ai essayé avec Echo% Jver%. ça ne fonctionne pas


Essayez avec * Path% Path%;% Java_Home% \ bin \ * avant la boucle


Obtenir une erreur: il dit * Le chemin n'est pas une commande. Ensuite, pour Echo% Jver%, il est indiqué que Echo est éteint. J'ai mis à jour ma question ci-dessus. a donné un script complet. juste vérifier plz.


retirer le * .Le gras laissé à un astériks ici ... éditera la réponse


Java.exe n'est pas sur le chemin. Quel est le résultat si vous n'écrivez simplement% java_home% \ bin \ java.exe /?


Votre chemin devrait avoir% java_home% \ bin.vous pouvez vérifier si java -bulversion génère une sortie.Si vous avez la java.exe dans le chemin, je devrais réécrire ma réponse à utiliser uniquement - Version commutateur.


voici mon code: pour / f jetons ^ = 2-5 ^ Delims ^ =.-_ ^ "%% j in ('Java -Version 2 ^> ^ & 1') Do" Jver = %% j "j'ai eu 6 hors de la version. Comment obtenir "0_31"?


Vous devez utiliser -bulversion à la place -version


pour / f eol ^ = j ^ jetons ^ = 2-5 ^ DELIMS ^ =.-_ ^ "%% j in ('Java -version 2 ^> ^ & 1') Do" Jver = %% J . %% k. %% l _ %% m "


J'aimerais utiliser un chemin de java personnalisé, comme celui-ci: pour / f jetons ^ = 2-5 ^ Delims ^ =.-_ ^ "% J in ('Path \ to \ Jre \ Java -Bulversion 2 ^> ^ & 1 ') do @set "jver =% j% k% k% m" . Comment puis-je obtenir ce travail?


@ S1ICE - Il devrait fonctionner dans la manière dont vous l'avez posté. Mais certains fournisseurs ont des implémentations différentes de -Bulversion . Quel est le problème avec la ligne que vous avez postée? Est-ce que cela a couru du fichier batch ou de l'invite de commande?



0
votes

Il devrait être Java -Version // Si le chemin d'environnement est déjà défini

ou% java_home% / bin / java -version // Si le chemin n'est pas déjà défini


0 commentaires

0
votes

Dans une instruction de bloc,% var% serait écho comme la valeur de var avant la saisie du bloc.

Déplacez le ECHO en dehors du bloc ou ECHO %% g ou appel echo %% Javaver %% ou invoquer setlocal EnabledElayedExpansion et Echo! Javaver!


0 commentaires

3
votes

Vous pouvez le faire avec awk : xxx


Exemple de script: xxx

sortie est: java version: "1.7.0_21-b11"
awk pour Windows


1 commentaires

@Bobbobrachel Script inséré.



1
votes

Ce sera surlysé idiot mais pourquoi ne pas simplement imprimer Java_Home Chemin?


0 commentaires