Executer fichier.bat avec java

[Résolu]
Signaler
Messages postés
129
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
2 décembre 2012
-
Messages postés
129
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
2 décembre 2012
-
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

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
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.
Messages postés
129
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
2 décembre 2012

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