2012-04-20 84 views

回答

1

使用Process and ProcessStartInfo

陈建你的java命令,或者在command字符串您的批处理文件名。

System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command); 

// The following commands are needed to redirect the standard output. 
// This means that it will be redirected to the Process.StandardOutput StreamReader. 
procStartInfo.RedirectStandardOutput = true; 
procStartInfo.UseShellExecute = false; 
// Do not create the black window. 
procStartInfo.CreateNoWindow = true; 
// Now we create a process, assign its ProcessStartInfo and start it 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo = procStartInfo; 
proc.Start(); 

// Get the output into a string 
string result = proc.StandardOutput.ReadToEnd(); 
// Display the command output. 
Console.WriteLine(result); 

如果你想异步运行它,试试这个:

/// <summary> 
/// Execute the command Asynchronously. 
/// </summary> 
/// <param name="command">string command.</param> 
public void ExecuteCommandAsync(string command) 
{ 
    try 
    { 
    //Asynchronously start the Thread to process the Execute command request. 
    Thread objThread = new Thread(new ParameterizedThreadStart(ExecuteCommandSync)); 
    //Make the thread as background thread. 
    objThread.IsBackground = true; 
    //Set the Priority of the thread. 
    objThread.Priority = ThreadPriority.AboveNormal; 
    //Start the thread. 
    objThread.Start(command); 
    } 
    catch (ThreadStartException objException) 
    { 
    // Log the exception 
    } 
    catch (ThreadAbortException objException) 
    { 
    // Log the exception 
    } 
    catch (Exception objException) 
    { 
    // Log the exception 
    } 
} 
+0

但罐子没有运行,在命令提示符下被切断 – 2012-04-20 08:21:55

+0

@saisindhu把CreateNoWindow =假,并告诉我们什么你看。 – LaGrandMere 2012-04-20 08:24:06

+0

@saisindhu我添加了输出,它应该写在您的控制台。这将有助于看到会发生什么。 – LaGrandMere 2012-04-20 08:25:49