我需要从java运行bat文件。这是我用于此的代码。
public static void main(String[] args) {
try {
ProcessBuilder pb = new ProcessBuilder("C:\\test\\test.bat");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
p.waitFor();
} catch (IOException ex) {
Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex);
}
}
此代码工作正常。但是如果我为bat文件程序添加等待代码等待并且永远不会结束。这是bat文件。
@echo off
echo harshana
echo harshana
echo harshana
choice /d y /t 5 > nul
echo Times up! Here I go again...
echo harshana10
当我在cmd中运行这个bat文件时,它会回响3次' harshana'并等待5秒钟。然后回声其余的。但是当我从java代码运行bat文件时,那就是时间了!我再来一次......'和' harshana10'没有打印,java代码没有退出(等待)。我该如何解决这个问题?