command line - programa - ¿Cómo hacer llamadas de comandos del sistema en Java/Groovy?
ejecutar varios comandos cmd desde java (4)
Lo que quiero hacer es invocar maven desde un guión maravilloso. El guión groovy en cuestión se usa como envoltorio de maven para crear proyectos J2EE al descargar una etiqueta e invocar a maven en lo que se descargó. ¿Cómo debo lograr invocar a maven para construir / empaquetar el EAR (el script groovy ya es capaz de descargar la etiqueta de SCM).
Es tan simple como hacer
"yourCommand".execute();
Si desea obtener salidas de impresión en el comando ejecutado en salida estándar, puede hacer
def proc = "yourCommand".execute();
proc.waitForProcessOutput(System.out, System.err);
Si desea almacenar y procesar el resultado, puede hacerlo
def proc = "yourCommand".execute();
def outputStream = new StringBuffer();
proc.waitForProcessOutput(outputStream, System.err);
println(outputStream .toString());
La forma más sencilla de invocar un proceso externo en Groovy es usar el comando execute () en una cadena. Por ejemplo, para ejecutar maven desde un script groovy ejecutar esto:
"cmd /c mvn".execute()
Si desea capturar la salida del comando y quizás imprimirlo, puede hacer esto:
print "cmd /c mvn".execute().text
El ''cmd / c'' al inicio invoca el shell de comandos de Windows. Como mvn.bat es un script por lotes, necesita esto. Para Unix, puede invocar el shell del sistema.
Para la redirección de Java 7+ stdio:
new ProcessBuilder(''cmd'', …args…).redirectOutput(ProcessBuilder.Redirect.INHERIT).start().waitFor();
Puede usar la clase Runtime para iniciar un comando de shell. échale un vistazo aquí: http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html#exec(java.lang.String) Luego puedes capturar los resultados de la ejecución del Proceso ( para averiguar si falló o no).