Выход после инициализации пакетного скрипта из Java - PullRequest
0 голосов
/ 12 мая 2011

Я хочу инициализировать один пакетный скрипт, используя код Java.После инициализации мне нужно выйти из java-программы и хочет, чтобы пакетный скрипт продолжал выполняться.Как я могу этого добиться.Я использовал Runtime и Process для этого.Но он ожидает завершения пакетного сценария, прежде чем перейти к следующему.Это пример программы, которую я опробовал.

        try {
            Runtime r = Runtime.getRuntime();
            System.out.println("Executing process");
            Process p = r.exec("c:\\anoop\\ping.bat");
            System.out.println("Executed process"); 
            p.waitFor();
            System.out.println("Exiting with out :: ");
        } catch (Exception e) {// Catch exception if any
            System.err.println("Error: " + e.getMessage());
            e.printStackTrace();
        }

Если я использую p.exitValue (), она выдает ошибку java.lang.IllegalThreadStateException: процесс не завершился.Короче говоря, я просто хочу инициализировать пакетный скрипт и затем выйти из Java-программы.

Спасибо, Anoop

1 Ответ

0 голосов
/ 12 мая 2011

Чтобы получить значение выхода процесса, используйте:

int res = p.waitFor();
System.out.println("Exiting with out :: " + res);

Если вы хотите, чтобы процесс просто продолжался, не ждите его (не звоните wait())

Если процесс ожидает ввода или выдает какой-либо вывод, вы должны обработать его (предпочтительно в отдельных потоках), поскольку все операции ввода-вывода перенаправлены.

...