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 :

[débutant][API][Système] Exécuter une application depuis un programme Java


Sujet :

Java

  1. #1
    Martin Guélat
    Invité(e)
    Par défaut [débutant][API][Système] Exécuter une application depuis un programme Java
    Bonjour. j'ai besoin de lancer une application (Access) depuis mon programme. J'ai essayé de procéder avec la ligne de code trouvée sur ce site mais ca ne marche pas. Est ce que quelqu'un peut m'aider?
    Voici le code que j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    	Process p = Runtime.getRuntime().exec("cmd.exe bdd_CB.mdb");
          } catch (IOException e) {
    	e.printStackTrace();
    }

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Essaie avec la commande start au lieu de cmd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Runtime.getRuntime().exec("start mabdd.mdb");
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Martin Guélat
    Invité(e)
    Par défaut exécution d'une application depuis java
    j'ai essayé mais ça ne marche pas... voici l'erreur :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    java.io.IOException: CreateProcess: start bdd_CB.mdb error=2
    	at java.lang.ProcessImpl.create(Native Method)
    	at java.lang.ProcessImpl.<init>(Unknown Source)
    	at java.lang.ProcessImpl.start(Unknown Source)
    	at java.lang.ProcessBuilder.start(Unknown Source)
    	at java.lang.Runtime.exec(Unknown Source)
    	at java.lang.Runtime.exec(Unknown Source)
    	at java.lang.Runtime.exec(Unknown Source)
    	at interface_java.Gestion_bouton.actionPerformed(Gestion_bouton.java:38)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)


    avec ce code là :
    Process p = Runtime.getRuntime().exec("start bdd_CB.mdb");

  4. #4
    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 Re: [débutant] Exécuter une application depuis un programme
    Salut,

    Citation Envoyé par Martin Guélat
    J'ai essayé de procéder avec la ligne de code trouvée sur ce site mais ca ne marche pas.
    Tu pourrais donner l'URL ? parce que si le code est faux on pourra le corriger...

    Sinon "cmd.exe bdd_CB.mdb" ne veux rien dire car cmd n'interprètera pas son paramètre dans ce cas, et "start bdd_CB.mdb" ne peut fonctionner que dans une console MsDos car c'est une commande interne de "cmd.exe".

    Donc il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd /C "start bdd_CB.mdb"
    Soit en Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Process p = Runtime.getRuntime().exec( new String[] {
    	"cmd.exe",	// commande
    	"/C",		// paramètre 1
    	"start bdd_CB.mdb",	// paramètre 2
    	});
    Normalement il faut lire/écrire dans les flux d'entrée/sortie du programme appellée, mais comme Access ne doit pas les utiliser il vaut mieux les fermer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    p.getInputStream().close();
    p.getOutputStream().close();
    p.getErrorStream().close();

    Pour finir je te fait remarquer que ce code n'est pas du tout portable, et qu'il serait peut-être préfférable d'utiliser la biliothèque JDIC (une petite recherche sur le forum pour plus de détail).

    a++

  5. #5
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Il existe plusieurs problèmes dans ton code:

    1) Tu balances un fichier "bdd_CB.mdb" sans indiquer où il se trouve. Toujours utiliser un chemin absolu.

    2) cmd ou start ne sont pas un panacé pour démarrer un programme.
    Dans ton cas, tu désirers ouvrir un fichier ACCESS (extension .mdb) alors donne-lui le chemin de l'application ACCESS et passe lui le fichier "bdd_CB.mdb" comme argument.

    Avec Windows XP-Pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # Quel est le type de fichier associé avec l'extension .mdb
    >assoc .mdb
    .mdb=Access.Application.9
     
    # Quel est le programme associe avec ce type de fichier
    >ftype Access.Application.9
    Access.Application.9="C:\Programme\Microsoft Office\Office\MSACCESS.EXE" /NOSTARTUP "%1"
    Traduison cela en Java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        String mdb = "C:\\Programme\\Microsoft Office\\Office\\Samples\\Nordwind.mdb";
        String[] cmd = {"C:\\Programme\\Microsoft Office\\Office\\MSACCESS.EXE", mdb}; 
        Process process = Runtime.getRuntime().exec(cmd, null, null);
        process.waitFor();
        int status = process.exitValue();
        System.out.println("Status: " + status);
    De nouveau brûlé par adiGuba...

    N'oublie pas les remarques de adiGuba
    Bien le bonjour chez vous
    Jowo

  6. #6
    Martin Guélat
    Invité(e)
    Par défaut MERCI
    J'ai essayé ca marche merci beaucoup!

Discussions similaires

  1. [API][Système] Appel d'une application externe via java
    Par Tasslekender dans le forum Général Java
    Réponses: 2
    Dernier message: 17/03/2006, 14h13
  2. [API] Lancer une application externe via un code Java
    Par k o D dans le forum Général Java
    Réponses: 19
    Dernier message: 09/03/2006, 15h12
  3. Api Windows : Ou mettre le code de l'application.
    Par fab29000 dans le forum Windows
    Réponses: 2
    Dernier message: 06/10/2005, 09h03
  4. [Apis]parser les arguments d'un programme Java
    Par sacofan dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/08/2005, 14h32
  5. Réponses: 4
    Dernier message: 16/02/2004, 16h55

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