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 :

Thread et script windows


Sujet :

Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2014
    Messages : 139
    Par défaut Thread et script windows
    Bonjour, je cherche à créer un programme qui en pilote un second. Je m'explique le second programme est assez complexe(au niveau de son interface en autre).
    Mais il peut être run par ligne de commande, donc en gros mon but c'est de créer une interface plus épuré. Qui permettent en fonction des options de l'utilisateur de lancer le second programme déjà configuré.(ce n'est qu'une partie du programme, il traite aussi les info de sortie du second soft)

    Comme je connais juste les bases en java. J'ai d'abord essayé de créer un script windows simple du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    if "%1"=="0" echo salut
    if "%1"=="1" echo bienvenue
    Avec ce script là, visiblement ça fonctionne sur windows 7. Et ensuite il passe à la suite.
    Par contre le même script sur windows xp me renvoie
    "Windows ne trouve pas '0'. Vérifier que vous avez entré le nom correctement[...]"
    '0' étant Ssum
    Le script fonctionnant quand il est lancé manuellement, j'en déduis que j'ai du faire une bêtise dans le programme java.

    Ssum étant un nombre généré en fonction des options choisis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Process p = null;
    try {
    Runtime r = Runtime.getRuntime();
    String [] cmd={"cmd.exe","/C", "start", "C:\\Documents and Settings\\IT\\test.bat",Ssum};
    p = r.exec(cmd);                    
    p.waitFor();// l'application doit attendre a ce que ce process soit finis
    } catch (Exception e) {
    jop.showMessageDialog(null, e.getMessage(), "Erreur", JOptionPane.ERROR_MESSAGE);
    }finally 
    {
    // On détruit le process (au cas où)
    p.destroy();
    }
    Quelqu'un aurait une idée d’où le problème peut venir ?

    edit:Je modif le chemin relatif, car ça semble venir de là.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il y a un point en trop derrière ton bat dans la commande.

    Au passage, si tu compte récupérer la sortie de ton programme, passer par cmd / start est une mauvaise idée, tu n'aura pas accès aux flux d'entrée / sortie du programme que tu lance.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2014
    Messages : 139
    Par défaut
    En effet, dans ce que j'ai copié collé j'avais un . en trop mais après vérification, j'ai du le rajouter en écrivant. Car il n'est pas présent dans mon soft.

    Je viens de faire d'autre test, en mettant le .bat directement dans c:// et là ça à fonctionné.
    Par contre quand j'ai mis le .bat dans Documents and settings. donc ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] cmd={"cmd.exe","/C", "start", "C:\\Documents and settings\\test.bat",Ssum};
    Là de nouveau ça ne marche plus.Même chose si je le met dans Program Files.
    J'ai l'impression que le problème vient donc de l'espace. Car j'ai ensuite créé dans c: un dossier "test 1" et en mettant le .bat dedans hop ça ne fonctionne plus. Par contre avec "test1" là ça fonctionne.
    Mais je comprends pas du tout pourquoi.

    Pour ta remarque, je vais en tenir compte. J'utilisais pas start au début, mais comme rien ne fonctionnait j'ai pensé que peut-être ça venait de ça.


    ps: pour la petite explication, le soft que j'essaie de manipuler est un soft très spécialisé. La licence coute plus de 10k(oui oui ). Du coup nous en possédons qu'une seule sur un pc portable tournant sur xp, et comme on se le partage. J'ai codé mon soft sur mon pc qui tourne sur windows 7. Donc les chemins relatifs ne sont pas les même. Entre le pc xp et le miens. J'aurais peut-être du poster le chemin sur le pc portable en 1er, car ça lui qui pause problème.

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,



    Vires le "start" et récupère le flux de sortie... pour voir s'il n'y a pas un message d'erreur !

    Si tu es sous Java 5 utilise plutôt un ProcessBuilder...


    A noter que sous Java 7 tu peux utiliser inheritIO() pour que les E/S soit hérité de l'appli Java...



    a++

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2014
    Messages : 139
    Par défaut
    Que ce soit p.getInputStream();
    ou p.getErrorStream();
    Les deux ne renvoient rien. (en enlevant le start bien sur).

    Sinon je suis sous Java 6. Enfin bref je vais essayer par processesBuilder. Si ça marche pas. Pas grave je laisserais le bat dans c:\ ça change pas grand chose, maintenant que j'ai compris que le prob venait de son emplacement et du fais que les espaces posent problèmes. Même si ça m'intrigue. Comme ce PC portable est utilisé par tout le service(et visiblement auparavant par un autre service), je sais pas si un des mes collègues à modif un truc.

    Merci pour vos réponses en tout cas.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    De toutes façons, avant d'essayer de lancer ta commande dans java, commence pas la lancer à la main. Je peux t'assurer que

    cmd /c start truc avec des espace, même à la main, ça ne passe pas

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

Discussions similaires

  1. script windows qui détecte la présence d'un fichier
    Par yannich dans le forum Windows
    Réponses: 1
    Dernier message: 23/08/2006, 18h24
  2. Tutorial WSH (Script windows)
    Par mymyma dans le forum Windows
    Réponses: 2
    Dernier message: 25/07/2006, 10h55
  3. script windows erroné
    Par flouflou dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 30/06/2006, 16h18
  4. script windows pour copier fichier
    Par sacan dans le forum Windows
    Réponses: 3
    Dernier message: 09/06/2006, 12h24
  5. Script Windows
    Par couillu dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 17/11/2004, 13h58

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