IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Shell]Détecter la version de java dans un script


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut [Shell]Détecter la version de java dans un script
    Salut tout le monde,

    Je suis en train d'écrire un script shell pour installer une appli java sous UNIX et comme celle-ci nécessite le JRE 1.5 je me suis dit "tiens, pourquoi ne pas empêcher l'installation de l'appli si le JRE installé est trop ancien" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >java -version | head -n1 | grep "1.5"
    java version "1.5.0.01"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.01-_06_jun_2005_05_20)
    Java HotSpot(TM) Server VM (build 1.5.0.01 jinteg:06.06.05-04:39 PA2.0 (aCC_AP), mixed mode)
    hmm... essayons encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >java -version | grep NOMDUNPETITBONHOMME
    java version "1.5.0.01"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.01-_06_jun_2005_05_20)
    Java HotSpot(TM) Server VM (build 1.5.0.01 jinteg:06.06.05-04:39 PA2.0 (aCC_AP), mixed mode)
    Diable, il semblerait que l'affichage soit toujours le résultat de 'java -version' quel que soit la combinaison de commandes que je place après.

    Comment faire pour résoudre mon problème ?

    (je précise que je n'ai PAS les sources du programme java pas question donc de le modifier)

    Merci pour votre aide...[/code]


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    salut ,

    ne faut il pas rediriger la sortie standard dans une variable et faire ton grep sur cette variable ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Je pense que biozaxx a une bonne idée. Ou alors tu rediriges le résultat de ton java-version vers un fichier sur lequel tu fais tes recherches sur la version de la jre ensuite.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Apparemment java utilise la sortie d'erreur stderr pour afficher le numéro de version...
    C'est bizarre mais bon...

    Le pipe | ne prend que la sortie standard stdout, il te faut donc rediriger stderr dans stdout avec 2>&1 (2=stderr, 1=stdout, ce qui se lit stderr redirigé dans le flux de stdout).

    Donc ceci devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -version 2>&1 | head -n1 | grep "1.5"
    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Alors là bravo adiGuba !

    J'avais complètement oublié que le pipe redige uniquement stdout et pas stderr !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Importer des .java dans un script
    Par Invité dans le forum MATLAB
    Réponses: 4
    Dernier message: 15/09/2014, 09h32
  2. comment faire appel d'une application java dans un script shell?
    Par moradbe dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 01/02/2007, 19h55
  3. Réponses: 31
    Dernier message: 16/11/2006, 21h18
  4. Réponses: 1
    Dernier message: 10/11/2006, 11h04
  5. Quelle version de java utilisez vous ?
    Par Scorpyosis dans le forum Langage
    Réponses: 115
    Dernier message: 06/11/2006, 20h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo