我创建了一个java脚本,它使用runtime.exec()来执行批处理文件,并且工作正常,但是当我得到输出流并使用write()函数时,它不会执行我输入的命令它
Runtime runtime = Runtime.getRuntime();
Process p;
p = runtime.exec("cmd /c start batchfile.bat");
out = p.getOutputStream();
out.write("command".getBytes());
Runtime runtime = Runtime.getRuntime();
Process p;
p = runtime.exec("cmd /c start batchfile.bat");
out = p.getOutputStream();
out.write("command".getBytes());
它显示批处理文件但不运行命令,是否有另一种方法在运行批处理文件的cmd中输入命令,以便显示它?
答案 0 :(得分:0)
使用start命令,将打开一个单独的命令窗口,并在那里显示批处理文件的任何输出。它也应该只用作cmd / c build.bat,在这种情况下,如果需要,你可以用Java读取子进程的输出。
答案 1 :(得分:-1)
您正在写入输出流。我认为你的意思是写入输入流。
试试这个:
Runtime runtime = Runtime.getRuntime();
Process p;
p = runtime.exec("cmd /c start batchfile.bat");
in = p.getInputStream();
in.write("command".getBytes());