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 :

Lancer un .bat avec exécution depuis une IHM


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut Lancer un .bat avec exécution depuis une IHM
    Salut tout le monde

    j'ai un pb avec le lancement d'un .bat.

    Le point bat en question ouvre une console et demande des instructions, et lance un rmiregistry. Je sais que mon bat est correct car quand je le lance à la main, il marche bien.

    Je sais que mon bat est bien lu, et qu'il se lance quand je clique sur mon bouton car une fenêtre console se lance pour mon RMI.

    Mais la fenêtre console principale, celle dans la quelle je pose des questions disparaît.

    En regardant sur Internet j'ai eu l'impression que cela avait à voir avec la méthode de lancement des programmes extérieurs à Java.

    Il semblerait que se soit assez compliqué...


    Est ce que vous pouvez me dire comment lancer mon point bat pour que la console ne se ferme pas?

  2. #2
    Invité
    Invité(e)
    Par défaut
    C'est pas très clair tout ça.

    Ce que tu appelles ta "console principale" c'est quoi ? La console avec laquelle tu lances ton programme Java ? Une autre console à l'intérieur de l'IHM ?

    Si j'ai bien compris tu parles d'une première console que tu as utilisée pour lancer ton programme Java. Dans ce cas, lorsque tu utilises la méthode exec() pour lancer ton bat, ton programme Java se contente de demander au système d'exploitation de lancer un nouveau processus qui exécutera ton script. C'est donc normal que Windows ouvre une nouvelle console qui correspond au processus que tu viens de lancer et qui exécute ton .bat

    Par contre je ne comprend pas comment le fait de faire ça ferme la première console. Pourrais-tu donner plus de précisions ?

    Après je ne sais pas ce qu'est un rmiregistry donc je rate peut-être quelque chose.
    Dernière modification par Invité ; 09/06/2009 à 10h30. Motif: orthographe

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    Oui c'est vrai que c'est pas très clair...

    Alors voilà:

    je lance une interface graphique depuis la console qui m'ouvre une fenetre avec des boutons et des text area a remplir.

    Cette interface permet de renseigner l'adresse du serveur qui va héberger le jeu en réseau (car cela sert à lancer un jeu en réseau)

    Une fois que l'adresse du serveur est connue, l'utilisateur peut cliquer sur un boutton, qui va lui permettre de creer la partie. Lors du clique, une méthode se lance. Cette méthode va lancer un point bat. Ce point bat permet d'ouvrir un annuaire, d'ouvrir les ports, et tout et tout pour avoir un serveur qui marche.

    Ensuite, un autre utilisateur depuis un autre pc clique sur l'autre bouton (rejoindre partie) ce qui entraine la creation d'un point bat avec la bonne adresse serveur, puis le lancement du point bat.

    Voilà pour l'idée globale.

    Maintenant, ce que je sais c'est que la syntaxe de mes points bat est correcte car si je les lance depuis l'invite de commande, cela marche bien.
    Quand je lance le serveur deux consoles s'ouvrent, une pour le rmi, et une autre ou on demande le nombre de joueur.
    Quand je lance le client, une console s'ouvre ou on lui demande son nom, le serveur de son coté enregistre le client dans l'annuaire.

    Maintenant, ce que je veux, c'est que ça me fasse la même chose avec mon ihm. Mais ça coince...

    Premier probleme possible, les points bat ne sont pas lus?
    NON, ils sont biens lus, j'ai fait des tests en insérant dans mes bats des créations de fichiers sur mon bureau, et ça marche !!!

    Donc, je sais que les bats marchent, je sais qu'ils se lancent, et je remarquent que ça ne marche pas !!!

    En regardant sur internet, il me semble que c'est lié à la gestion du lancement des applications extérieurs avec java...

    Moi, je fais juste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Runtime.getRuntime().exec("Serveur/lancement/lancerServeur.bat");
    mais apparemment si on veut que ça marche bien il faut faire plus compliqué...
    Il semblerait que se soit un problème de flux, qu'il faudrait mettre dans des threads, mais là j'ai l'impression de faire de la physique nucléaire...

    Une dernière chose.
    La seule console qui reste ouverte est justement celle qui est lancée par
    start rmiregistry

    il semblerait que l'instruction start rendent la console ainsi ouverte un peu plus autonome, mais ça ne m'avance pas beaucoup...


    Alors ???
    Je suis dessus depuis pas mal de temps, un peu d'aide serait vraiment appréciée.

    Bye

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 621
    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 621
    Points : 15 701
    Points
    15 701
    Par défaut
    le problème c'est que .bat est un script, pas un exécutable. Runtime.exec() ne lance directement des exécutables. Si tu veux lancer un script, il faut lancer l'interpréteur avec en paramètre le script a exécuter.
    Dans ton cas ça serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Proccess p = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "Serveur/lancement/lancerServeur.bat"});
    Attention cependant comme ton script va probablement ecrire sur le sortie standard, il est conseillée de la lire via p.getInputStream(), car sinon le bat risque de se bloquer en plein milieu.

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    Attention cependant comme ton script va probablement ecrire sur le sortie standard, il est conseillée de la lire via p.getInputStream(), car sinon le bat risque de se bloquer en plein milieu.

    ca veut dire quoi ?
    Merci pour ta reponse, en tout cas!!

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    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
    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
       String line = "";
       try {
        while((line = reader.readLine()) != null) {
         // Traitement du flux de sortie de l'application si besoin est
        }
       } finally {
        reader.close();
       }
      } catch(IOException ioe) {
       ioe.printStackTrace();
      }
     }
    }.start();
    // Consommation de la sortie d'erreur de l'application externe dans un Thread separe
    new Thread() {
     public void run() {
      try {
       BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
       String line = "";
       try {
        while((line = reader.readLine()) != null) {
         // Traitement du flux d'erreur de l'application si besoin est
        }
       } finally {
        reader.close();
       }
      } catch(IOException ioe) {
       ioe.printStackTrace();
      }
     }
    }.start();
    c'est quelque chose comme ça qu'il faut que je fasse?

  7. #7
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 621
    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 621
    Points : 15 701
    Points
    15 701
    Par défaut
    Les programmes de type console écrivent leur messages dans des flux qui sont lus par l'application qui les lance(un flux pour les message normaux, un pour les messages erreur).
    Typiquement la console depuis laquelle tu as lancé l'application lis le flux et te l'affiche dans sa fenêtre ce qui te permet de lire les messages.

    Comme le programme n'est pas lancé dans une console mais par un programme Java, c'est le programme Java qui va recevoir les message dans les flux(auquels tu as accès via p.getInputStream() et p.get ErrorStream()). Si tu ne les lis pas, le programme que tu as lancé risque de se bloquer au bout d'un moment en attendant que tu les aie lus.

  8. #8
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 621
    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 621
    Points : 15 701
    Points
    15 701
    Par défaut
    c'est qqch comme ça qu'il faut que je fasse?
    Tout à fait.

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    OK je vais essayer et je te dis.

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    Je n'ai pas d'erreur, mais, je n'ai même plus la console du rmi...

    Voilà mon code :
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    protected void lancerServeur() throws IOException {
    		//SERVEUR
    		File model = new File("Serveur/lancement/lancerServeurModel.txt");
    		model.renameTo(new File("Serveur/lancement/lancerServeur.bat"));
     
    		Runtime runtime = Runtime.getRuntime();
    		final Process process = runtime.exec(new String[]{"cmd.exe", "/c", "Serveur/lancement/lancerServeur.bat"});
     
    		// Consommation de la sortie standard de l'application externe dans un Thread separe
    		new Thread() {
    			public void run() {
    				try {
    					BufferedReader reader = new BufferedReader(
    							new InputStreamReader(process.getInputStream()));
    					String line = "";
    					try {
    						while((line = reader.readLine()) != null) {
    							// Traitement du flux de sortie de l'application si besoin est
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
    		// Consommation de la sortie d'erreur de l'application externe dans un Thread separe
    		new Thread() {
    			public void run() {
    				try {
    					BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    					String line = "";
    					try {
    						while((line = reader.readLine()) != null) {
    							// Traitement du flux d'erreur de l'application si besoin est
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
     
    		//LE SERVEUR EST AUSSI CLIENT 
    		File input = new File("Serveur/lancement/lancerClientModel.txt");
    		try {
    			FileWriter writer = new FileWriter("Serveur/lancement/lancerClient.txt");
    			FileInputStream fis = new FileInputStream(input);
    			InputStreamReader isr = new InputStreamReader(fis);
    			BufferedReader br = new BufferedReader(isr);
    			while(br.ready()){	
    				String ligne = br.readLine();
    				ligne = ligne.replace("localhost",serveur.getText());
    				writer.write(ligne);
    				writer.write("\r\n");
    			}
    			writer.close();
    		} 
    		catch (FileNotFoundException e1) {e1.printStackTrace();} 
    		catch (IOException ex) {ex.printStackTrace();}
     
    		input.renameTo(new File("Serveur/lancement/lancerClient.bat"));
     
    		final Process process2 = runtime.exec(new String[]{"cmd.exe", "/c", "Client/lancement/lancerClient.bat"});
     
    		// Consommation de la sortie standard de l'application externe dans un Thread separe
    		new Thread() {
    			public void run() {
    				try {
    					BufferedReader reader = new BufferedReader(
    							new InputStreamReader(process2.getInputStream()));
    					String line = "";
    					try {
    						while((line = reader.readLine()) != null) {
    							// Traitement du flux de sortie de l'application si besoin est
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
    		// Consommation de la sortie d'erreur de l'application externe dans un Thread separe
    		new Thread() {
    			public void run() {
    				try {
    					BufferedReader reader = new BufferedReader(new InputStreamReader(process2.getErrorStream()));
    					String line = "";
    					try {
    						while((line = reader.readLine()) != null) {
    							// Traitement du flux d'erreur de l'application si besoin est
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
     
    	}

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut Encore des pbs
    Je pense avoir fait ce qu'il fallait, mais ça ne marche toujours pas, une idée?

  12. #12
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 621
    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 621
    Points : 15 701
    Points
    15 701
    Par défaut
    C'est normal que tu n'aie plus la console affichée vu que tu lances depuis Java. Les messages que tu avais sur la console arrivent dans les flux que tu lis.
    Si tu veux afficher ce que tu lis dans les flux, ajoute System.out.println(line); à la place des commentaires dans le code de lecture des flux que tu as donné ci dessus.

  13. #13
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut ENCORE DES PBS
    Merci beaucoup pour ton aide. J'ai compris pas mal de truc et ça c'est chouette.
    Par contre, ça ne marche toujours pas.

    Voilà mon code :

    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    protected void lancerServeur() throws IOException {
    		//SERVEUR
    		File model = new File("Serveur/lancement/lancerServeurModel.txt");
    		model.renameTo(new File("Serveur/lancement/lancerServeur.bat"));
     
    		Runtime runtime = Runtime.getRuntime();
    		String[] cmdServeur = {"cmd.exe", "/c", "Serveur/lancement/lancerServeur.bat"};
    		final Process process = runtime.exec(cmdServeur);
     
    		//INPUT
    		new Thread() {
    			public void run() {
    				try {
    					InputStream is = process.getInputStream();
    					InputStreamReader isr = new InputStreamReader(is);
    					BufferedReader reader = new BufferedReader(isr);
    					String ligne = "";
    					try {
    						while((ligne = reader.readLine()) != null) {
    							ecrireDansTextField(ligne);
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
     
    		//ERROR
    		new Thread() {
    			public void run() {
    				try {
    					InputStream is = process.getErrorStream();
    					InputStreamReader isr = new InputStreamReader(is);
    					BufferedReader reader = new BufferedReader(isr);
    					String ligne = "";
    					try {
    						while((ligne = reader.readLine()) != null) {
    							ecrireDansTextField(ligne);
    							}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
     
    			}
    		}.start();
     
    		//LE SERVEUR EST AUSSI UN CLIENT 
    		File input = new File("Serveur/lancement/lancerClientModel.txt");
    		try {
    			FileWriter writer = new FileWriter("Serveur/lancement/lancerClient.txt");
    			FileInputStream fis = new FileInputStream(input);
    			InputStreamReader isr = new InputStreamReader(fis);
    			BufferedReader br = new BufferedReader(isr);
    			while(br.ready()){	
    				String ligne = br.readLine();
    				ligne = ligne.replace("localhost",serveur.getText());
    				writer.write(ligne);
    				writer.write("\r\n");
    			}
    			writer.close();
    		} 
    		catch (FileNotFoundException e1) {e1.printStackTrace();} 
    		catch (IOException ex) {ex.printStackTrace();}
     
    		input.renameTo(new File("Serveur/lancement/lancerClient.bat"));
     
    		String[] commandes = {"cmd.exe", "/c", "Client/lancement/lancerClient.bat"};
    		final Process process2 = runtime.exec(commandes);
     
    		// INPUT
    		new Thread() {
    			public void run() {
    				try {
    					InputStream is = process2.getInputStream();
    					InputStreamReader isr = new InputStreamReader(is);
    					BufferedReader reader = new BufferedReader(isr);
    					String ligne = "";
    					try {
    						while((ligne = reader.readLine()) != null) {
    							ecrireDansTextField(ligne);
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
     
    		//ERROR
    		new Thread() {
    			public void run() {
    				try {
    					InputStream is = process2.getErrorStream();
    					InputStreamReader isr = new InputStreamReader(is);
    					BufferedReader reader = new BufferedReader(isr);
    					String ligne = "";
    					try {
    						while((ligne = reader.readLine()) != null) {
    							ecrireDansTextField(ligne);
    						}
    					} finally {
    						reader.close();
    					}
    				} catch(IOException ioe) {
    					ioe.printStackTrace();
    				}
    			}
    		}.start();
     
    	}
     
    	protected void ecrireDansTextField(String ligne) {
    		int i = 0;
    		int longueur = 70;
    		for (i=0 ; i<ligne.length()/longueur ; i++){
    			int debut = i*ligne.length()/longueur;
    			int fin = (i+1)*ligne.length()/longueur;
    			etat.append("\n"+ligne.substring(debut,fin));
    		}
    		int debut = (i+1)*ligne.length()/longueur;
    		etat.append("\n"+ligne.substring(debut));
    	}

    Quand cette methode est lancée, j'obtient dans le texte field, l'erreur suivante :

    'Serveur' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.
    'Client' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.
    Est ce que tu as une idée?
    En tout cas, MERCI Beaucoup pour toute l'aide que tu m'a apportée jusqu'à présent..




    'Serveur' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.
    'Client' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.

  14. #14
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 621
    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 621
    Points : 15 701
    Points
    15 701
    Par défaut
    Comme le message d'erreur l'indique, le répertoire courrant ne semble pas être le bon.
    Essaie avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		File model = new File("Serveur/lancement/lancerServeurModel.txt");
    		model.renameTo(new File("Serveur/lancement/lancerServeur.bat"));
     
    		Runtime runtime = Runtime.getRuntime();
    		String[] cmdServeur = {"cmd.exe", "/c", new File("Serveur/lancement/lancerServeur.bat").getAbsolutePath() };
    Sinon tu peux également utiliser la classe ProcessBuilder qui permet elle aussi de lancer des processus, mais en définissant le répertoire courant.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/07/2007, 18h18
  2. [ASP 1.1]Lancer un .bat (avec argument)
    Par doudoustephane dans le forum ASP.NET
    Réponses: 9
    Dernier message: 21/06/2007, 08h43
  3. Interagir avec sqlserver depuis une webform
    Par mawkli dans le forum ASP
    Réponses: 3
    Dernier message: 19/04/2007, 14h05
  4. lancer un bat avec une adresse relative
    Par LittleBean dans le forum Langage
    Réponses: 8
    Dernier message: 28/03/2007, 16h44
  5. preload avec ciblage depuis une iframe
    Par jgoguel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2005, 10h42

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