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

Interfaces Graphiques en Java Discussion :

[ debutant ] exécution commande system() en click JButton


Sujet :

Interfaces Graphiques en Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [ debutant ] exécution commande system() en click JButton
    Je n'arrives pas a exécuter une commande système depuis mon script JAVA.
    J'ai pourtant pris la peine de comparer plusieurs documentations sur le net mais aucune ne m'a renseigné assez pour trouver la faille de mon code
    Quelqu'un pourrait-il me renseigner ???

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    import java.io.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.Dimension;
     
    public class swing2 extends JFrame {
     
    	public swing2() 
    	{
     
    		super("ma fenetre");
     
    		/*
    			* gestion de l'évènement de fermeture de l'écran
    		*/
    		WindowListener l = new WindowAdapter() {
    			public void windowClosing(WindowEvent e){
    				System.exit(0);
    			}
    		};
    		addWindowListener(l);
     
    		JLabel jLabel1 =new JLabel("Nom de répertoire : "); 
        		JLabel jLabel2 =new JLabel("Nom du *.pdf : "); 
     
    		JTextField nom_rep = new JTextField("nom répertoire");
        		nom_rep.setPreferredSize(new Dimension(150,20 ));
        		JTextField f_pdf = new JTextField("fichier_pdf");
    		f_pdf.setPreferredSize(new Dimension(150,20 ));
     
    		/*
    			* ajout de bouton
    		*/
    		JButton bouton = new JButton("créer les fichiers");
     
    		/*
    			* ajout d'un sélecteur de fichier
    		*/
    		JFileChooser chooser = new JFileChooser();
     
    		/*
    			* ajout du panneau (à détailler)
    		*/
    		JPanel panneau = new JPanel();
    		panneau.add(jLabel1);
    		panneau.add(nom_rep);
    		panneau.add(jLabel2);
    		//panneau.add(f_pdf);
    		panneau.add(chooser);
    		panneau.add(bouton);
    		bouton.addActionListener ( new click(nom_rep,chooser) );
     
    		/*
    			* affichage et vidage du buffer du panneau ?
    		*/
    		setContentPane(panneau);
    		setSize(800,100);
    		setVisible(true);
    	}
     
    	public static void main(String [] args)
    	{
    		JFrame frame = new swing2();
    	}
     
    }
     
    class click implements ActionListener 
    {
    	JTextField n_rep;
    	JFileChooser f;
    	//String n_rep;
    	//String f;
    	String cmd_create;
     
    	click (JTextField c_1, JFileChooser c_2) 
    	{
    		//System.out.println ("Vous avez passé "+c_1+" et "+c_2+" en arguments à l'objet clické");
    		n_rep = c_1;
    		f = c_2;
    	}
     
    	public void actionPerformed (ActionEvent e) 
    	{
    		//System.out.println ("Le bouton a été clické");
    		System.out.println("Voici les valeurs saisies, rep : "+n_rep.getText()+" et pdf : "+f.getSelectedFile().getName()+" ");
    		cmd_create = "md "+n_rep.getText()+"";
    		System.out.println("Commande : "+cmd_create+" ");
    		Runtime.getRuntime().exec(cmd_create);
    	}
    }
    en compilation me dit ça (et pourtant j'ai rajouté (à mauvais escient ?) java.io.*...)



    Je remercies d'avance les personnes qui se pencheront sur mon souci ...

  2. #2
    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,


    La méthode exec() peut renvoyer une exception, il faut donc que tu la traites...

    FAQ : Exception ... must be caught ... ?

    a++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai checké le lien traitant des exception c cool je vais pouvoir me mettre à debugger plus efficacement .... à moins que je ne sois encore bloqué...

    J'ai catché ce qui fait que le message d'erreur ne s'affiche plus mais cela ne change pas le fait que bien qu'étant sous windows la commande "md repertoire" par exemple n'est ^pas exécutée....

    Faut-il vérifier et au besoin changer un paramètre de sécurité pour pouvoir exécuter une commande système sous windows XP depuis Java???

    Voici le code que j'ai écrit et qui me renvoit toujours mon message d'erreur que j'ai écrit dans le catch()

    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
    public void actionPerformed (ActionEvent e) 
    	{
    		//System.out.println ("Le bouton a été clické");
    		nrep = n_rep.getText();
    		fname = f.getSelectedFile().getName();
    		//System.out.println("Voici les valeurs saisies, rep : "+n_rep.getText()+" et pdf : "+f.getSelectedFile().getName()+" ");
    		System.out.println("Voici les valeurs saisies, rep : "+nrep+" et pdf : "+fname+" ");
    		cmd_create = "md "+nrep+"";
    		System.out.println("Commande : "+cmd_create+" ");
     
    		try{
    			Process proc = Runtime.getRuntime().exec(cmd_create);
    		}
    		catch (IOException er) { 
    		System.out.println("Commande de création de répertoire non exécutée"); }
    	}
    merci d'avance pour vos réponses

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    lol
    ça y est j'ai trouvé pourquoi la commande système ne s'exécutait pas :-)

    Pour information pour tous ceux qui pourraient se retrouver devant le meme problème voici la solution que j'ai trouvé :

    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
    // Win 95/98/ : pour lancer un .bat
       6.                 // cmd = "command.com /c c:\\fichier.bat";
       7.                 
       8.                 // Win NT(XP...) : pour lancer un .bat
       9.                 // cmd = "cmd /c c:\\fichier.bat";
      10.  
      11.                 // Win 95/98/NT : pour lancer un .exe
      12.                 // cmd = "command.com /c c:\\windows\\notepad.exe";
      13.  
      14.                 // Win 95/98/NT : pour lancer une commande dos
      15.                 // cmd = "cmd /c copy src.txt dest.txt";
      16.  
      17.  
      18.                 // UNIX : pour lancer un script en precisant le shell (sh,bash)
      19.                 // cmd = "/usr/bin/sh script.sh";
      20.  
      21.                 // UNIX : pour lancer script
      22.                 // cmd = "/path_complet/tonscript";
    Voilà donc pour ceux qui n'auraient pas compris si vous voulez que exec() fonctionne il faut rentrer une commande telle que celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd /c md mon_repertoire
    Voilà sur ce je souhaites une bonne continuation à tous ;-)

  5. #5
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut

    Citation Envoyé par ganjaman
    Voilà donc pour ceux qui n'auraient pas compris si vous voulez que exec() fonctionne il faut rentrer une commande telle que celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd /c md mon_repertoire
    désolé, je suis arrivé trop tard pour répondre, tu as trouvé la solution avant!
    L'astuce que tu donnes est valable pour toutes les commandes qui doivent se lancer depuis la fenêtre de commande (ce qui fait qu'il est un peu logique de lancer l'exécutable cmd avant de passer la commande...).

    Sinon, tu peux éviter cette manipulation si il ne s'agit que de créer un répertoire... la classe File possède une méthode mkdir...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Commande system : cp s'exécute mais renvoie un message d'erreur
    Par Takka dans le forum Programmation et administration système
    Réponses: 14
    Dernier message: 21/05/2014, 19h12
  2. [PHP 5.1] Exécution de la command system
    Par rastatoon dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2013, 15h13
  3. [WS 2008 R2] PB exécution commande system()
    Par getty dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 13/07/2011, 12h59
  4. Problème d'excéution de commande systeme.
    Par clebig dans le forum Langage
    Réponses: 4
    Dernier message: 19/09/2007, 11h18
  5. Process : exécution de commande system
    Par Choupinou dans le forum Langage
    Réponses: 4
    Dernier message: 23/04/2007, 10h52

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