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

Windows XP Discussion :

Programme en tâche de fond & redirection de la sortie un dans fichier


Sujet :

Windows XP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Programme en tâche de fond & redirection de la sortie un dans fichier
    Bonjour,

    Je suis sous Windows XP et je souhaiterais pouvoir lancer un programme java en ligne de commande. Jusqu'ici tout va bien me direz-vous ...
    Oui, mais il y a deux obligations supplémentaires :
    * je voudrais que ce programme tourne en tâche de fond (autrement dit que la main me soit rendue immédiatement)
    * je voudrais que la sortie de ce programme soit redirigée dans un fichier.

    Et c'est là qu'arrivent mes soucis ...
    - En effet, je suis capable de lancer le programme dans un autre thread avec la commande start.
    - je suis aussi capable de rediriger la sortie d'un programme vers un fichier avec quelque chose resemblant à "> nomdufichier.txt"

    MAIS, oui car il y a un mais, pas moyen de trouver la technique pour faire les deux en même temps. Passer "> nomdufichier.txt" en tant que paramètre de la commande à exécuter, avec start, me renvoie une erreur.

    Du coup, j'ai essayé de lancer un .bat, toujours avec start ; et de mettre dans ce .bat une redirection dans un fichier. Et là le lancement du .bat se fait bien, mais par contre, la manière que j'ai d'écrire la redirection dans le .bat (toujours avec la technique de "> ...") n'est pas bien interprétée => résultat, bah c'est pas mieux.

    J'aurais donc aimé savoir si il y avait un moyen de faire cela sous Windows (sans évidemment toucher à mon prog java).
    Enfin, pour éviter tout troll intempestif, oui je sais, sous Linux, c'est mieux et ça se fait "fingers in the nose" ...

    Merci d'avance pour les éventuelles idées

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Alors je répond sans etre sur de moi, tu peux déja essayer de mettre la partie qui lance ton programme entre parentheses

    (start ...) > log.txt

    Apres ça vient peut etre de start que je connais pas, mais il me semble que tu peux lancer un prog java en ligne de commande directement (quelque chose comme java -option nomdelaclasse) peut etre que ça t'aidera.

    Pour finir je ne suis pas un spécialiste du tout du batch, mais j'ai du en créer un récemment, j'espere que ça pourra t'aider a avancer.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Perso j'ai crée quelque fichier Batch et j'ai toujours appelé mes executable par la commande call... et je redirige aussi la sortie de ces programme... (par contre je sais pas si ca te satisfera pour ce qui est de le lancer en tache de fond)
    en gros ca me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd rep_du_prog
    call nom_du_prog.exe > trace.txt
    voila j'espere que ca marchera

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par vinyl74
    Alors je répond sans etre sur de moi, tu peux déja essayer de mettre la partie qui lance ton programme entre parentheses

    (start ...) > log.txt
    Oui effectivement ça marche, mais il me met dans le fichier ce qu'affiche la commande start, c'est à dire rien .... et non ce qu'affiche le programme lancé par start.

    Citation Envoyé par vinyl74
    Apres ça vient peut etre de start que je connais pas, mais il me semble que tu peux lancer un prog java en ligne de commande directement (quelque chose comme java -option nomdelaclasse) peut etre que ça t'aidera.
    Pour cela pas de problème, je lance mon programme comme cela ...
    Mon problème vient en fait de la commande 'start' qui ne supporte pas '> log.txt'.
    Après, il me faudrait savoir si il y a un autre moyen de lancer un thread (sans utiliser start) ou un autre moyen de renvoyer la sortie d'un programme vers un fichier

    Pour être plus clair, ce que je veux faire, ça donnerai ça sous linux :

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par L'apotre
    Perso j'ai crée quelque fichier Batch et j'ai toujours appelé mes executable par la commande call... et je redirige aussi la sortie de ces programme... (par contre je sais pas si ca te satisfera pour ce qui est de le lancer en tache de fond)
    en gros ca me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd rep_du_prog
    call nom_du_prog.exe > trace.txt
    voila j'espere que ca marchera
    Bah pas mieux , start ne supporte toujours pas la redirection dans un fichier même avec call ...

    En tout cas, merci à vous deux pour vos réponses ... Je continue à chercher

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    java -jar MyApp.jar > log.txt
    Et un truc dans ce style ? Ca devrait marcher non ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Oui ça marche et c'est ce que je fais ...
    Mais ça me fait pas un nouveau thread tout ça

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Bon je reviens avec une solution qui me convient que moyennement mais qui en est une ... et qui marche !

    L'idée est donc de faire un vbscript et d'y mettre les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "launch.bat > result.txt",0,false
    En précisant false en 3e argument de la commande run, le vbs n'attend pas la fin de l'exécution. Notre prog tourne en tâche de fond (puisque je récupère la main) et la sortie du programme est bien écrite dans un fichier de log (ici result.txt).

    Voilà, voilà

    Je mets cela en résolu, mais n'hésitez pas à me dire si vous trouvez une méthode en console pour faire ça ...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/02/2010, 14h17
  2. Exécuter programme dans fichier SAS
    Par Deciprog dans le forum SAS Base
    Réponses: 2
    Dernier message: 08/12/2009, 09h26
  3. Réponses: 2
    Dernier message: 17/06/2008, 13h24
  4. Réponses: 7
    Dernier message: 02/09/2005, 15h15
  5. redirection de la sortie d'un programme dos
    Par skaii dans le forum MFC
    Réponses: 2
    Dernier message: 11/05/2005, 14h42

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