String s;
Process process;
try {
process = Runtime.getRuntime().exec("cmd /c d://test.bat");
InputStream in=process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
while((s=bufferedReader.readLine()) != null){
System.out.println("sss"+s);
}
in.close();
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
bat内容
@echo off
::set /p var=请输入用户名:
::echo 您输入的用户名为%var%
java -classpath e:/6/ Test
::dir d:/success/
echo success
exit 0
注意:
java通过dos调用BAT时 如果使用cmd /c start d://test.bat(也就是start命令)那么将获取不到bat输出的内容,这样一来虽然我们不能通过java程序得到调用的BAT是否执行完成只要通过bat最后打印的信息就可以知道bat是否已经结束
而且,这样java可以获取到 bat中调用JAVA main函数中通过system.out.print打印的信息和bat中通过echo打印的信息