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

API standards et tierces Java Discussion :

[RUNTIME][EXEC]


Sujet :

API standards et tierces Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [RESOLU][RUNTIME][EXEC]
    Bonjour
    l'application que je developpe creer des fichiers .csv que je voudrai ouvrir sous excel.
    Je suis feniant (ou plutot mon boss ne veux pas que j'utilise d'autre librairie meme gratuite) et donc j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String cmd = "start excel " + m_outputFile.getAbsoluteFile();
    Runtime.getRuntime().exec(cmd);
    Le problem c'est que meme si le fichier est ferme ou pas j'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    java.io.IOException: CreateProcess: start excel c:\nautilus\Dev\log\Historical-Ilink_Matched_Metric-20040426_142738.csv error=2
            at java.lang.Win32Process.create(Native Method)
            at java.lang.Win32Process.<init>(Win32Process.java:66)
            at java.lang.Runtime.execInternal(Native Method)
            at java.lang.Runtime.exec(Runtime.java:566)
            at java.lang.Runtime.exec(Runtime.java:428)
            at java.lang.Runtime.exec(Runtime.java:364)
            at java.lang.Runtime.exec(Runtime.java:326)
    Alors est ce que quelquun a une idee.
    Merci

  2. #2
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Il faut que quand tu crée ta commande tu mette le chemin cmplet d'excel, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String cmd = "C:/Program Files/Microsoft Office/Office/EXCEL.EXE"+" "+m_outputFile.getAbsoluteFile(); 
    Runtime.getRuntime().exec(cmd);
    La ca devrait marcher

  3. #3
    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
    Salut,

    "start" n'est pas un programme mais une commande du shell.
    Pour l'utiliser sous Java il faut appeler le chell de Windows :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String cmd = "cmd /C start excel " + m_outputFile.getAbsoluteFile();
    Enfin la solution de narfiggo est un peut plus portable si le chemin d'accès est configurable (Sous linux, ouvrir avec openOffice.org par exemple...)

    a++

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    tu peut rajouter le chemin vers excel.exe dans ton path c'est un poil plus joli aussi
    apres tu n'as plus qu'à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String cmd = "EXCEL.EXE"+" "+m_outputFile.getAbsoluteFile(); 
    Runtime.getRuntime().exec(cmd);
    voilou

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    ya plus simple il me semble (enfin moi je fais pas comme toi).
    j ecris dans un fichier en .csv.je separe les colonnes par des ; et je saute de ligne.

    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
     
    void ecrire_csv(Vector contenu, String nom_fichier)
    	{	
    		//cette methode sert a ecrire un fichier csv interpretable excel(pour les tables de forwarding)
    		//contenu est un Vecteur de String : [coco;dodo;bobo][...] où ; est le separateur de colonne	
     
    		try
            {
            	BufferedWriter ecr;        	
            	if(os().startsWith("Windows"))
            	{        		
            		ecr = new BufferedWriter(new FileWriter(pwd()+"\\"+nom_fichier));
            	}
            	else
            	{	        		
            		ecr = new BufferedWriter(new FileWriter(pwd()+"/"+nom_fichier));
            	}
            	for(int i=0;i<contenu.size();i++)
            	{
            		ecr.write((String)contenu.elementAt(i),0,((String)contenu.elementAt(i)).length());
                    ecr.newLine();
            	}
            	ecr.close();
            }
            catch(Exception e)
            {
                System.out.println("Exception pendant l operation ecrire_csv : "+e);
            }		
    	}
    voilà apres je sais pas si ca correspond vraiment à ce que tu veux faire, en tout cas moi g pas d erreur :p.

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci a tous pour vos reponses
    J'ai essaye la methode the adiGuba et ca marche a merveille
    C'est par contre prevu d'avoir un parametre de configuration pour choisir la plateforme de lancement
    Merci a tous encore

  7. #7
    Membre du Club Avatar de gandalf_le_blanc
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 47
    Points
    47
    Par défaut
    Il y a un bouton prévu pour mettre Résolu !!!


  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Bonjour ,

    Je me permet de relancer cette discussion car la solution D'Adiguba marche a merveille pour lancer excel, seulement, le seul soucis, c'est que le fichier que je souhaite ouvrir , dans son nom, il y a des espaces ...


    J'ai donc essayé , avant d'exécuter le exec, de remplacer les espaces par %20 avec la ligne

    filepath.replace(" ", "%20")

    Mais aucun résultat. S'il vous plait , aidez moi, c'est pour un soft que je développe pour mon entreprise , donc super urgent.


    Merci.

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

Discussions similaires

  1. [Runtime,exec] Comment faire un pipe unix dans le exec ?
    Par Escuzze dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 06/03/2008, 12h48
  2. [Runtime][exec]Récupérer les stdout ET stderr
    Par yveslamand dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 20/05/2005, 13h37
  3. [Runtime]exec() avec une commande paramétrée
    Par nice dans le forum Général Java
    Réponses: 9
    Dernier message: 12/05/2005, 13h15
  4. [Servlet][Windows][System call]Runtime.exec
    Par lucho31 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 18/01/2005, 11h55
  5. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54

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