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

Langage Java Discussion :

executer un programme


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut executer un programme
    Bonjour je souhaiterais ouvrir un programme (notepad, interne exploreur, et windows media player). Mais j'aimerais qu'en s'ouvrant, un fichier particulier s'ouvre. Par exemple : c:\temp\toto.txt.

    Comment faire, j'arrive à ouvrir un programme mais pas avec le fichier que je veux...

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Penche-toi sur JDesktop qui te permet de faire ouvrir à ton OS un fichier avec son programme par défaut pour le type de fichier que tu lui donnes.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    il me semblait qu'il y avait des solutions plus simples comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("notepad.exe", "C:\\tmp\\letra1.txt");
    mais ça ne marche pas chez moi

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    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 698
    Par défaut
    Normalement la commande exec devrait fonctionner en un seul bloc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("notepad.exe C:\\tmp\\letra1.txt");
    Par contre ce genre de solution ne marchera que sous Windows et que avec notepad.

    Si tu veux ouvrir un fichier avec le programme par défaut, tu peux utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Runtime.getRuntime().exec("cmd /c start C:\\tmp\\letra1.txt");//pour Windows NT/2000/XP
    Runtime.getRuntime().exec("xdg-open C:\\tmp\\letra1.txt"); //pour un Linux pas trop ancien.
    Tu peux même utiliser une URL d'un site à la place de C:\\tmp\\letra1.txt pour l'ouvrir avec le navigateur web par défaut.

    JDIC est une solution plus efficace mais il te faudra ajouter une lib supplémentaire. Il te permet, entre autre, d'ouvrir tous les fichiers avec le programme par défaut et en utilisant le même code aussi bien pour Windows, Linux que MacOS, et qu'elle que soit la version.

  5. #5
    Membre expérimenté Avatar de ze_corsaire
    Inscrit en
    Décembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2007
    Messages : 240
    Par défaut
    Tu faisais peut-être allusion à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                 ArrayList command = new ArrayList();
    	ProcessBuilder pb = new ProcessBuilder();
    	command.add("notepad");
    	command.add("C:\\tmp\\letra1.txt");
    	pb.command(command);
    	try {
    		pb.start();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Runtime.exec() peut suffire, mais quand on veut lui passer une commade comprenant des arguments, il faut les passer à la méthode sous la forme d'un tableau de chaînes de caractères:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String[] args = new String[2];
    args[0] = "C:\\Windows\\...\\notepad.exe";
    args[1] = "C:\\...\\fichier.txt";
    Runtime.getRuntime().exec(args);
    Attention: il faut gérer les flux d'entrée/sortie du process ainsi créé (même si pour Notepad, ça ne devrait pas être trop problématique). Je te renvoie à l'excellent article d'adiGuba: "Runtime.exec() n'est pas des plus simples".
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  7. #7
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    ok, merci beaucoup pour toutes ces réponses... je pense que je vais y trouver mon bonheur

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

Discussions similaires

  1. [Reseau] Execution de programmes sur un autre PC
    Par el3gans dans le forum Général Java
    Réponses: 5
    Dernier message: 18/11/2004, 11h20
  2. Executer un programme, et interargir avec
    Par TheDarkLewis dans le forum Windows
    Réponses: 3
    Dernier message: 19/09/2004, 00h26
  3. [Classpath][execution] executer un programme avec des jar.
    Par LoLoSS dans le forum Général Java
    Réponses: 11
    Dernier message: 26/08/2004, 11h45
  4. [VB6] Exécuter un programme en tant que...
    Par Le_Tolier dans le forum VB 6 et antérieur
    Réponses: 36
    Dernier message: 28/05/2004, 14h53
  5. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50

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