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

API standards et tierces Java Discussion :

[Runtime] Récupération d'une variable fixée dans un .bat


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut [Runtime] Récupération d'une variable fixée dans un .bat
    Bonjour,

    J'aimerai savoir s'il est possible de récupérer une variable affectée dans un .bat qui est lui-même lancé par mon application Java comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class MaClasse extends JFrame {
       static {
          try {
                Runtime run = Runtime.getRuntime();
                Process p = run.exec("lib\\initializer.bat");
                // Comment récupérer une variable initialisée dans le .bat pour l'utiliser ici, afin de faire un System.setProperty()?
          }
          catch (IOException e) {
                e.printStackTrace(); 
          }
     
          [...]
    }
    Merci d'avance!

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    je dis ça un peu au pif mais ...

    ça dépend de comment tu crée la variable, si tu as un SET LOCAL par exemple je pense que ce n'est pas possible (enfin une déclaration locale à ce processus).

    Il faut vraiment créer cette variable comme variable d'environnement et du coup la récupérer comme telle (ça je crois que c'est possible). Comme la variable est créée par un processus et lue par un autre, je ne sais pas si chaque processus à ces propres valeurs de variables d'environnement (avec SET LOCAL par exemple) ou si ces valeurs sont partagées ...

    voilà, je sais pas si ça aide ...

  3. #3
    Membre chevronné
    Avatar de karami
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2005
    Messages : 343
    Par défaut
    Citation Envoyé par in
    je dis ça un peu au pif mais ...

    ça dépend de comment tu crée la variable, si tu as un SET LOCAL par exemple je pense que ce n'est pas possible (enfin une déclaration locale à ce processus).

    Il faut vraiment créer cette variable comme variable d'environnement et du coup la récupérer comme telle (ça je crois que c'est possible). Comme la variable est créée par un processus et lue par un autre, je ne sais pas si chaque processus à ces propres valeurs de variables d'environnement (avec SET LOCAL par exemple) ou si ces valeurs sont partagées ...

    voilà, je sais pas si ça aide ...
    Si j ai bien compris ta question, je croix que tu peux executer la commande directement en java (pas besoin du fichier bat) et récuperer le résultat.

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Ben à vrai dire, je ne sais pas trop : je ne suis pas un pro du DOS.
    Le .bat fait ça pour affecter la variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set PROPERTIES=init.properties
    Et normalement, je dois appeler mon appli en faisant ça dans un autre .bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    call .\lib\set_variables.bat
    java -Xms64M -Xmx400M -XX:GCHeapFreeLimit=1 -DPROPERTIES=%PROPERTIES% -classpath monAppli.jar dev.awt.monAppli
    exit
    On est donc obligé d'appeler ce .bat pour lancer l'initialisation de variables nécessaires à l'utilisation de dll par mon appli.

    Mais comme on aimerait lancer notre appli via un .exe (à l'aide de JavaExe), il faudrait intégrer l'affectation de cette variable dans notre appli. D'où la tentative d'appel du .bat et d'affection (via un System.setPtoperty())dans la clause static.

    Mais là, je m'égare un peu...

  5. #5
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Si le .bat ne fait que de l'affectation de variable d'environnement, il y a moyen de le remplacer par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setProperty("PROPERTIES", "init.properties");
    Autre question pourquoi faire un call d'un bat dans un autre et pas tout mettre dans le même??

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Ok merci, je vais tester.

  7. #7
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Bon, en fait, j'ai l'impression que mon problème est encore plus profond que ça : on dirait que le .bat ne se lance pas.
    Alors j'ai créé un .bat tout con, qui fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    echo toto
    pause
    Et je l'appelle dans une clause static de ma classe principale (celle contenant le main) comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try {
    	Runtime run = Runtime.getRuntime();
    	Process p = run.exec("test.bat");
    } catch (IOException e) {
    	System.out.println("Erreur d'initialisation : paramètre incorrect.\n " + e.toString()); 
    	e.printStackTrace();
    }
    J'ai aussi essayé de faire ça dans la méthode main() mais le résultat est le même : zéro affichage dans la console...

    Quelqu'un pourrait-il m'éclairer sur l'appel de .bat dans du code Java?
    Merci d'avance.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2009, 23h22
  2. Récupération d'une variable javascript dans une feuille XSL
    Par drakkar64 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/08/2008, 17h56
  3. Réponses: 5
    Dernier message: 25/05/2007, 10h22
  4. Réponses: 5
    Dernier message: 08/10/2006, 15h28
  5. [Conception] récupération d'une variable php dans une autre page
    Par vali7 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/01/2006, 11h19

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