2013-07-17 6 views
0

Я инженер C++, поэтому, пожалуйста, будьте осторожны! У меня есть код Java, который запускает процесс, но я хочу, чтобы это прекратило выполнение до тех пор, пока новый процесс не завершится.как ждать завершения процесса

Как это сделать на Java?

Благодаря

+0

возможно дубликат (HTTP://stackoverflow.com/questions/654525/implement-wait-between-processes-in-java) – m0skit0

+0

как вы начинаете процесс с Java? –

ответ

4

Предполагая, что у вас есть Process объекта, представляющие вновь созданное использование процесса Process.waitFor(), который:

Вызывает текущий поток ждать, если это необходимо, пока этот процесс не представлял этот объект Process прекратился. Этот метод немедленно возвращается, если подпроцесс уже завершен. Если подпроцесс еще не завершен, вызывающий поток будет заблокирован до завершения подпроцесса.

Process объект может быть получен от:

+0

Спасибо, это то, что я искал – user1414413

2

Если «процесс» является java.lang.Process полученным java.lang.Runtime, а затем использовать Process.waitFor()

Просто для полноты картины: как правило, в Java, вы работаете с потоками, а также возможность ждать потока до thread.join()

0

Read the stream from Process. Он будет ожидать завершения процесса до выполнения оставшегося кода.

Process p = Runtime.getRuntime().exec("your command(process)", null, new File("path of process where to execute")); 
    InputStream is=p.getInputStream(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    String line = reader.readLine(); 
    while (line != null) { 
     line = reader.readLine(); 
    } 
0

Если я прав, вы пытаетесь синхронизировать процессы (потоки).

Если, например, вы хотите ждать завершения вашей нити t1 до возобновления вашего основного процесса здесь идея: [? Реализовать ожидания между процессами в Java]

Thread t1 = new MyThreadExample(); 
t1.start(); 
t1.join(); //wait for completion 
/* 
    write what you want to do after completion 

*/ 
Смежные вопросы