Há situações nas quais se torna necessário iniciar processos externos.Em Java, podemos usar a classe Runtime para iniciar novos processos, tal como no código abaixo:
java.lang.Runtime.getRuntime().exec("notepad.exe")
O resultado será uma nova instância da classe abstrata java.lang.Process, cujos métodos poderemos acessar e assim direcionar o stream de saída, etc.
Groovy simplifica esta tarefa da seguinte forma: caso queira iniciar um novo processo, digite o nome do comando dentro de uma string e em seguida chame o método execute() embutido pela linguagem dentro desta classe, tal como no exemplo abaixo:
"notepad.exe".execute() // BEM mais simples, não é mesmo?
O resultado da execução deste método será uma instância de java.lang.Process, exatamente como o exemplo em Java que citei acima.
Sabe: da pra ir além. Você também pode processar a saída de um comando linha a linha se quiser. Supondo que você esteja executando o sistema operacional Linux (ou o Windows com o cygwin) instalado, o código abaixo também seria válido:
<pre class="code-java">def processo= <span class="code-quote">"ls -l"</span>.execute() processo.in.eachLine { linha -> println linha }</pre>
Não é bacana?