110,538
社区成员
发帖
与我相关
我的任务
分享
private static string checkJRE(String path)
{
string temp = String.Empty;
//实例化一个进程类
Process cmd = new Process();
cmd.StartInfo.FileName = "\"" + @path + "\"";
//将cmd的标准输入和输出全部重定向到.NET的程序里
cmd.StartInfo.UseShellExecute = false; //此处必须为false否则引发异常
cmd.StartInfo.RedirectStandardInput = true; //标准输入
cmd.StartInfo.RedirectStandardOutput = true; //标准输出
//不显示命令行窗口界面
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.Start(); //启动进程
//获取输出
//需要说明的:此处是指明开始获取,要获取的内容, //只有等进程退出后才能真正拿到
temp = cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();//等待控制台程序执行完成
cmd.Close();//关闭该进程
return temp;
}
List<string> list = new List<String>();
list.Add(@"C:\Program Files\Java\jre7\bin\java.exe");
list.Add(@"D:\SDK\JDK\JDK1.6.0_43\jdk1.6.0_43\bin\java.exe");
list.Add(@"D:\Program Files\Java\bin\java.exe");
String temp = string.Empty;
foreach (string path in list)
{
temp += "\n\n\n" + path + "\n\n\n" + checkJRE(path);
}
textBox1.Text = temp;
这样调用就第一个执行不了,说明不是空格的问题了啊,程序我用管理员权限运行也还是执行不了第一个