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

Entrée/Sortie Java Discussion :

lancer la commande cksum à partir de java


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut lancer la commande cksum à partir de java
    Bonjour,

    Mon problème semble simple mais bon...
    En fait je veux récupérer le résultat de la commande linux cksum sur un fichier.

    D'abord je voulais récupérer directement le résultat de ma commande système exécutée depuis java, mais je n'ai pas trouvé comment faire
    -> 1ere question : est-ce que c'est possible?

    Ensuite je me suis dis, c'est pas grave, tu rediriger la sortie dans un fichier que tu vas ensuite lire.

    Donc j'écris une petite classe de test que vous pouvez trouver après, et je teste. Le résultat n'est pas probant puisque le fichier de sortie n'est pas créé par l'exécution de ma commande.

    J'ai regardé et testé les différentes méthodes pour exécuter une commande, mais j'ai du mal à vraiment comprendre comment elles fonctionnent...
    Donc si vous pouvez m'éclairer sur ce point aussi, ça serait sympa!

    Merci d'avance


    classe de test :

    (la commande s'execute bien quand je la lance a la main )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
     
    public class test {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
     
            String lResult;
     
            String pFilePath = "fichier.txt";
     
            String lFileName = new File(pFilePath).getName();
            String lFileOut = "out" + lFileName + ".log";
            String lCmd = "/usr/bin/cksum " + pFilePath + " > " + lFileOut;
     
            try {
                Runtime lRuntime = Runtime.getRuntime();
                Process lProcess = lRuntime.exec(lCmd);
                // attente de la fin d'execution de la commande si necessaire
                lProcess.waitFor();
     
                System.out.println(lCmd);
     
                System.out.println(lProcess.exitValue());
     
                BufferedReader lReader = new BufferedReader(new FileReader(lFileOut));
                String lReturn = lReader.readLine();
     
                lReader.close();
     
                String[] lReturns = lReturn.split(" ");
     
                if(lReturns.length == 3){
                    lResult = lReturns[0];
                } 
     
                lResult =  "Error1";
            }catch(Exception e) {
                e.printStackTrace();
                lResult = "Error2";
            }
     
            System.out.println(lResult);
        }
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Tu as essayé de faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lProcess.getOutputStream()
    ? (ou getInputStream(), je sais plus)

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 502
    Points
    15 502
    Par défaut
    en effet si on veux récuppérer le résutat de la commande il faut lire le getInputStream() pour le flux de sortie standard de l'application et getErrorStream() pour le flux de sortie d'erreur de l'application.

Discussions similaires

  1. [WD16] lancer la commande mysqldump à partir de windev
    Par Motti2 dans le forum WinDev
    Réponses: 13
    Dernier message: 22/05/2013, 16h22
  2. [Runtime] executer une ligne de commande cmd à partir de java
    Par mazizou dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 10/05/2007, 13h47
  3. Lancer une commande isql à partir d'un autre poste
    Par doudou10000 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/10/2005, 15h43
  4. Lancer des commandes dos à partir d'un fichier texte
    Par tpdm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2005, 16h56
  5. Réponses: 1
    Dernier message: 30/04/2004, 11h36

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