2011-08-04 15 views
6

tengo un frasco, que si corro desde la línea de comandos me devuelve un verdadero o falso impreso para la consolaConseguir salida de la consola del tarro en C#

estoy tratando de ejecutar esto desde C# y obtener el resultado - esto se está haciendo como esto

Process p = new Process(); 
p.StartInfo = new ProcessStartInfo("java", @"-jar test.jar " + paramterForStringArgs[0]); 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.UseShellExecute = false; 
p.Start(); 
String s = p.StandardOutput.ReadToEnd(); 
p.WaitForExit(); 
Trace.WriteLine("data = " + s); 
return false; 

parece que estoy obteniendo siempre una cadena vacía y se preguntaba por qué esto podría ser, o si había una mejor manera de hacerlo?

+1

tratar de hacerlo con el comando "java.exe -version" y ver si funciona en primer lugar. – djangofan

+4

También es posible que deba establecer RedirectStandardError y llamar a p.StandardError.ReadToEnd(). – jonathanpeppers

+1

al redireccionar a la corriente stderror me permitió ver el error de que no se podía acceder al contenedor. Olvidé configurar la copia en el directorio de salida para copiar si era más nuevo. Perdí el tiempo de todos. lo siento, pero funciona - yay :) – James

Respuesta

5

Configuración RedirectStandardError y llamando p.StandardError.ReadToEnd() lee cualquier salida de error del proceso.

Cuestiones relacionadas