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 un fichier .exe


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut Lancer un fichier .exe
    Bonjour,

    Comment peut-on exécuter en java une application .exe?

    Après un coup d'oeil sur la faq, j'obtiens le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process proc = Runtime.getRuntime().exec("commande paramétrée");
    Mais que mettre dans commande paramétrée?

    Un truc de ce style "c:\diagram.exe -auto -new + image\ + file\ + 2009242"?

    Merci pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par Marvelll Voir le message
    Un truc de ce style "c:\diagram.exe -auto -new + image\ + file\ + 2009242"?
    sa me parait une bonne commande Pourquoi ne pas l'avoir teste avan de poser la question ?

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Justement, elle ne fonctionne pas.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Points : 121
    Points
    121

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    J'ai le code suivant :

    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
    System.out.println("Diagram");
    		String str = new File("diagrameditor\\DiagramEditor.exe")
    				.getAbsolutePath();
    		System.out.println(str);
    		String imgDir = new File("appli\\help\\images\\").getAbsolutePath();
    		System.out.println(imgDir);
    		String ddDir = new File("appli\\help\\diagrams\\").getAbsolutePath();
    		System.out.println(ddDir);
     
    		String command = "\"" + str + " -auto -new" + "\"" + ddDir + "\""
    				+ " \"" + imgDir + "\"";
     
    		try {
    			Process proc = Runtime.getRuntime().exec(command);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    Le programme me retourne l'erreur suivante :

    java.io.IOException: Cannot run program ""D:\Documents": CreateProcess error=2, Le fichier spécifié est introuvable.

    Je me demande si ce n'est pas à cause du chemin de mon fichier :

    D:\Documents and Settings\t0114670\Mes documents\Programmes Java\ADoc\Workspace\jsonTest1\diagrameditor\DiagramEditor.exe

    J'ai l'impression qu'il ne prend pas en compte les espaces.

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    J'ai réussi en modifiant la commande par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] command = { str,
    				" -auto -new" + ddDir + " " + imgDir + " " + stamp };

  7. #7
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Bonjour,

    ca ne serai pas plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String[] command = { str,"-auto", "-new", ddDir, imgDir, stamp };
    Process proc = Runtime.getRuntime().exec(command);
    le tableau doit contenir la commande puis un argument par case pas plus :p

  8. #8
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Citation Envoyé par unknow0 Voir le message
    Bonjour,

    ca ne serai pas plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String[] command = { str,"-auto", "-new", ddDir, imgDir, stamp };
    Process proc = Runtime.getRuntime().exec(command);
    le tableau doit contenir la commande puis un argument par case pas plus :p
    Merci, effectivement, ma version ne marchait pas, j'ai cru que c'était le cas vu que tout se lançait mais après vérification, ça ne se lançait pas comme je voulais.

    Je vais essayer ta façon. Mais je suis surpris que "-auto" et "-new" soit séparé --> Toutefois tu as raison

  9. #9
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    je ne sais pas trop.
    Si c'est deux argument ils doivent etre separer (vu qu'il y avais un espace dans ta ligne j'en ai deduit que ca devait etre le cas)

  10. #10
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Comment fait-on pour demander au programme d'attendre la fin du process lancé?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut

    Pour ton problème d'origine, ton erreur est là au passage (en rouge)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String command = "\"" + str + "\" -auto -new" + "\"" + ddDir + "\""
    				+ " \"" + imgDir + "\"";
    t'avais oublié de fermer la quote autour du nom de programme

    De toutes façons, la méthode tableau est la plus propre et la plus facile à lire

  12. #12
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Bien vu tchize.

    Sinon en fait, c'était super simple pour mettre en pause le process, j'avais juste oublié le try/catch

    Merci pour tout,je mets en résolu.

  13. #13
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    de rien

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

Discussions similaires

  1. Lancer un fichier .exe
    Par roulian46 dans le forum Général Java
    Réponses: 4
    Dernier message: 09/05/2011, 10h28
  2. Réponses: 2
    Dernier message: 28/03/2010, 17h24
  3. Lancer un fichier .exe en C?!
    Par Ibn Rochod dans le forum C
    Réponses: 15
    Dernier message: 10/04/2008, 18h07
  4. Command unix ou linux (fedora): lancer un fichier .exe
    Par corseb-delete dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 06/04/2007, 11h29
  5. [VB.Net] lancer un fichier .exe depuis une VB.net
    Par vijeo dans le forum VB.NET
    Réponses: 3
    Dernier message: 01/12/2006, 08h14

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