как дождаться завершения пакетной команды в java

Я хочу дождаться, пока моя пакетная команда завершит свое выполнение и создаст CSV-файл в качестве вывода. Код для выполнения командного файла приведен ниже.

String command = "cmd /c start " + batFile;
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec(command);

Затем я хочу использовать файл CSV (app.csv), чтобы прочитать его содержимое. Но когда я запускаю программу, мне нравится.

java.io.FileNotFoundException: C:\appanalysis\app.csv (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileInputStream.<init>(FileInputStream.java:79)
    at java.io.FileReader.<init>(FileReader.java:41)

Как это решить


person shravani    schedule 02.05.2013    source источник
comment
Проверьте stackoverflow.com/questions/15199119/   -  person Jaydeep Rajput    schedule 02.05.2013


Ответы (2)


Попробуйте pr.waitFor этот метод вернет код выхода, все, кроме 0, означает, что процесс завершился неудачно.

Вместо String command = "cmd /c start " + batFile; использовать String command = "cmd /c " + batFile

person Karthikeyan Vaithilingam    schedule 02.05.2013
comment
да, я использовал его, но при первом запуске тот же файл не был найден - person shravani; 02.05.2013
comment
Пакетный файл создает файл CSV? - person Karthikeyan Vaithilingam; 02.05.2013
comment
да, он создает CSV-файл в моем локальном каталоге .... поэтому мои операторы программы сразу после процесса pr = rt.exec (команда); int exitVal = pr.waitFor(); заключается в использовании файла CSV для анализа. Но получение файла не найдено - person shravani; 02.05.2013
comment
Вместо команды String = cmd /c start + batFile; попробуйте Строковая команда = cmd /c + batFile; - person Karthikeyan Vaithilingam; 02.05.2013

Runtime.exec возвращает объект Process (pr в приведенном выше примере). Просто вызовите pr.waitFor(), чтобы дождаться завершения процесса.

person edoloughlin    schedule 02.05.2013