Executer fichier.bat avec java

Résolu
alias100 Messages postés 129 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 2 décembre 2012 - 15 mai 2007 à 15:57
alias100 Messages postés 129 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 2 décembre 2012 - 17 mai 2007 à 08:39
Salut,
j'ai realiser un programme qui me permet de lancer un fichier batch et ca marche en local, maintenant j'ai deux machine connecte appartient au meme reseau PC1,PC2 respectivement le premier contient un fichier.bat sous C: et le PC2 contient le programme qui va lancer la commande d'execution de ce fichier
comment je dois modifier mon code pour qu'il s'execute
voici mon code:

import java.io.*;
//
public class Test_runtime {
   
    public static void dumpStream(InputStream in, PrintStream out) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line = "";
        try {
            while((line = reader.readLine()) != null) {
                // Traitement du flux de sortie de l'application si besoin est
                System.out.println(line);
            }
        }
        finally {
            reader.close() ;   
        }
    }
 
   
   
    public static void main(String[] args) throws IOException, InterruptedException{
        
        //final Process    P = Runtime.getRuntime().exec(new String[] { "cmd.exe", "/C", "dir" });
    final Process    P = Runtime.getRuntime().exec(new String[] { "test.bat"});
               
        //Thread Erreur
        new Thread() {
            public void run() {
                try {
                    dumpStream(P.getErrorStream(), System.err);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            }.start();
            //Thread Ecriture
            //Consommation de la sortie standard de l'application externe dans un Thread separe
            new Thread() {
                public void run() {
                    //
                    try {
                        dumpStream(P.getInputStream(), System.out);
                    }
                    catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }               
            }.start();
            P.waitFor();
           
    }
}

Merci pour vos aides

2 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
15 mai 2007 à 20:55
Salut:

Si tu veux exécuter une commande sur une machine distance, tu peux:

- créer un programme client/serveur
- utiliser RMI (Remote Method Invocation)

Le client ou le serveur (le plus important que ce sont deux programmes qui ont une voix de communication) signale l'autre bout de communication de lancer le fichier .bat.
3
alias100 Messages postés 129 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 2 décembre 2012
17 mai 2007 à 08:39
Ce que j'ai compris:
Pour exécuter une application a distance que se soit machine linux ou
windows je dois utiliser des protocoles,
par exemple SSH
puisque il se trouve sur les deux plateformes linux ou
windows

Est-ce que cette idée est juste ou pas ?
Merci pour votre aide
0
Rejoignez-nous