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

Langage Java Discussion :

Récupéré un STDOUT


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut Récupéré un STDOUT
    Bonjour

    j'ai un problème en Java je suis nouveau dans la programmation java
    Au fait j'ai codé cette petite classe

    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
     
    public class ExtAppExec {
     
    	public void ExecApp(String cmd){
     
     
    	 try {
    	 Runtime r = Runtime.getRuntime();
    	 Process p = r.exec(cmd); 
    	 p.waitFor();//here we wait till the application finish
    	 }catch(Exception e) {
    	 System.out.println("erreur d'execution " + cmd + e.toString());
    	 } 
     
    	}
     
     
    }
    Qui m permet de lancer des application externes.
    Jusque là ça marche sans problème
    Mais quand il s'agit d'un script avec redirection d'une sortie standard vers un fichier je ne trouve ni fichier ni resultat et aucun message d'erreur c'est comme si java n'accepte pas les ">" pour rediriger un stdout

    Si par exemple je fait "cat texte1 > texte2 "ça ne marche pas

    Pourriez vous me dire comment rediriger le resultat d'un programme qui me sort du texte en sortie standard dans un fichier en Java ?

    merci de votre aide

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Attention que par exec tu ne lances pas un shell, mais un programme. Les redirections sont prises en charge par un shell, non par le programme.

    Il ne faut donc pas lancer cat directement, mais lancer un shell, avec lequel tu lanceras cat, et qui te fera les redirections et autre.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    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,

    Citation Envoyé par gifffftane Voir le message
    Il ne faut donc pas lancer cat directement, mais lancer un shell, avec lequel tu lanceras cat, et qui te fera les redirections et autre.
    +1

    Il faut également traiter les E/S du process dans des threads séparé AVANT de faire le waitFor(), sinon tu risques le deadlock...

    Plus d'info :

    Bonne lecture...

    a++

  4. #4
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 137
    Points : 42
    Points
    42
    Par défaut
    j'ai essayé mais ça na pa smarché j'ai meme crée un programme en C qui me fait ça mais j'ai toujours pas de sortie ?!
    un shell à me proposer qui fait ça ?

  5. #5
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Heu... qu'as-tu essayé des deux liens que adiGuba t'a passés ??
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

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

Discussions similaires

  1. [servlet][tester la valeur des champs récupérés]
    Par maya5 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2004, 10h06
  2. [Plugin] Récupère la platforme Eclipse
    Par ebh dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 24/03/2004, 14h21
  3. Réponses: 3
    Dernier message: 15/03/2004, 00h55
  4. Réponses: 16
    Dernier message: 18/07/2003, 17h16
  5. descripteur stdin stdout
    Par discogarden dans le forum Réseau
    Réponses: 10
    Dernier message: 08/01/2003, 23h25

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