如何在程序中通过java代码调用机器上C:\temp\test.bat??

解决方案 »

  1.   


    import java.io.*;
    public class Run{
        public static void main(String rags[])throws Exception{
         Process p=Runtime.getRuntime().exec("C:\\temp\\test.bat");
     InputStream in=p.getInputStream();
     int ch=-1;
         while((ch=in.read())!=-1);
    }
    }
      

  2.   


    Process pro = Runtime.getRuntime().exec("C:\\test.bat");//这里调用批处理
    InputStreamReader isrErr = new InputStreamReader(pro.getErrorStream());//这里得到错误输出流
    BufferedReader brErr = new BufferedReader(isrErr);
      

  3.   


    //一个批处理和和得到批处理的输出流和错误流的例子
    public class JavaCammandTest {

    public static void main(String [] args){
    T.test();
    }

    public static void test() throws IOException{
    FileWriter fwErr = new FileWriter(new File("C:\\err.txt"));
    BufferedWriter bwErr = new BufferedWriter(fwErr);
    FileWriter fwOut = new FileWriter(new File("C:\\Out.txt"));
    BufferedWriter bwOut = new BufferedWriter(fwOut);

    Process pro = Runtime.getRuntime().exec("C:\\test.bat");
    InputStreamReader isrErr = new InputStreamReader(pro.getErrorStream());
    BufferedReader brErr = new BufferedReader(isrErr);

    String s;
    while((s = brErr.readLine()) != null){
    bwErr.write(s);
    bwErr.newLine();
    }
    brErr.close();
    bwErr.close();

    InputStreamReader isrIn = new InputStreamReader(pro.getInputStream());
    BufferedReader brIn = new BufferedReader(isrIn);

    while((s = brIn.readLine()) != null){
    bwOut.write(s);
    bwOut.newLine();
    }
    brIn.close();
    bwOut.close();

    pro.destroy(); }
    }