Мне нужно запустить файл bat из Java.это код, который я использовал для этого.
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
когда я запускаю этот файл bat в cmd, он повторяет 3 раза 'harshana' и ждет 5 секунд.затем повторить остальное.но когда я запускаю файл летучей мыши из кода Java, это «раз!Здесь я снова ... », и« harshana10 »не печатается, и код Java не выходит (ожидание).Как я могу решить эту проблему?