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 :

Lancement application externe (autres que .exe)


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut [Résolu] Lancement application externe (autres que .exe)
    Bonjour,

    Je souhaiterais savoir s'il est possible de lancer une application, autre qu'un executable .exe, depuis un programme.
    Par exemple, lancer un fichier de type .doc avec le logiciel associé.

    Il m'est possible de lancer un .exe avec une méthode ressemblant au sujet de la FAQ :

    Citation Envoyé par Clément Cunin
    Execution :
    L'exécution d'un programme externe se fait grâce à la méthode exec(java.lang.String commande) de la classe java.lang.Runtime.


    try {
    Process proc = Runtime.getRuntime().exec("commande paramétrée");
    } catch (IOException e) {

    }

    Communication :
    Il est possible de communiquer avec l'application grâce à l'objet java.lang.Process :

    * destroy() pour tuer l'application fille.
    * waitFor() pour attendre la fin de l'application fille (Attention à ne pas bloquer l'exécution du processus d'évènement awt).
    * getErrorStream(), getInputStream() et getOutputStream() pour communiquer avec l'application.
    * exitValue() pour connaître l'état de sortie de l'application.
    Néanmoins le seul paramètre valide semble être un .exe. Existe t'il une méthode alternative ? Ou encore une autre approche ? Je reste ouvert à toutes idées pour lancer un fichier autre que .exe à partir de mon appplication JAVA.

    Merci pour votre aide,

    Pierre.

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    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 690
    Par défaut
    Depuis java 1.6, tu peux utiliser la classe Desktop qui est exactement faite pour cela.

    Pour les versions précédentes, tu peux utiliser la bibliothèque native JDIC.

    Ou plus simple sous windows, tu dois pouvoir t'en sortir avec la commande windows start:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try {
       Process proc = Runtime.getRuntime().exec(new String[]{"cmd", "/c", "start", monFichierDoc});
    } catch (IOException e) {
       //code en cas d'exception
    }
    Et si tu n'a

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    Merci pour ta réponse rapide !

    Je m'oriente vers Desktop et JDIC alors, et donnerai des nouvelles sous peu !

    (ton message s'est arrêté à "et si tu n'a", avais tu autre chose à dire ?)

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    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 690
    Par défaut
    Heu... non!
    Je sais pas ce que ca viens faire la je devais pas être bien réveillé.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    Le problème est résolu, merci.

    J'ai simplement utilisé une méthode de Runtime :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	public String []cmd ={"C:\\wish83.exe","C:\\path.tcl", "&"}; 
        	Process p = Runtime.getRuntime().exec(cmd);
    Le premier paramètre pour l'executable du logiciel et le 2eme pour le fichier qui s'ouvre avec le logiciel. (le tableau de String pour éviter le problème des espaces dans le path ("Program Files"))
    Le "&" est un essai pour que le programme principal garde la main, mais il semblerais que ça ne fonctionne que sous unix.

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    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 690
    Par défaut
    Même sous unix le "&" ne fonctionnerait pas. En effet exec() ne fait pas office de shell. Il démarre uniquement un exécutable avec les paramètres donnés. toutes les commandes qui dépendent du shell comme cd, copy, attrib, net, ... et les mécanismes qui lui sont propres comme les redirections, pipes, ... ne sont pas gérés.

    Qu'entends tu par "pour que le programme principal garde la main"? Normalement le programme principal devrait continuer son exécution sans difficulté après avoir démarré l'exécutable.

Discussions similaires

  1. [D2010]Problème lancement application externe
    Par tokazio dans le forum Langage
    Réponses: 7
    Dernier message: 28/08/2012, 15h13
  2. Problème lancement d'une application externe
    Par cl@ndestIno dans le forum C#
    Réponses: 3
    Dernier message: 19/02/2009, 17h51
  3. Faire un lien externe (soit autre que montsite.com/unepage.html )
    Par JoJo1234 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/05/2007, 13h46
  4. [VB6] Lancement d'une application externe
    Par ahouba dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 31/05/2006, 15h42
  5. Minimize Maximize perso sur une form autre que Application
    Par sdebrois dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 07/03/2005, 17h59

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