using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
namespace PathWindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
button1_Click(null,null);
}
public string SetPath(string pathName,string pathValue,string delete) //删除delete 要大写,再加到后面。
{
string pathlist;
pathlist = Environment.GetEnvironmentVariable(pathName, EnvironmentVariableTarget.Machine);
if (pathlist == null)
{
Environment.SetEnvironmentVariable(pathName, pathValue, EnvironmentVariableTarget.Machine);
}
else
{
string temp="";
string[] list = pathlist.Split(';');
foreach (string item in list)
{
if (!item.ToUpper().Contains(delete) && item != pathValue && item!="")
temp += item+";";
}
Environment.SetEnvironmentVariable(pathName, temp + pathValue + ";", EnvironmentVariableTarget.Machine);
}
return pathName + "=" + Environment.GetEnvironmentVariable(pathName, EnvironmentVariableTarget.Machine);
}
public string SetPath(string pathName, string pathValue)//删除原来的并新增
{
Environment.SetEnvironmentVariable(pathName, pathValue, EnvironmentVariableTarget.Machine);
return pathName + "=" + Environment.GetEnvironmentVariable(pathName, EnvironmentVariableTarget.Machine);
}
private void ExcuteDosCommand(string cmd)
{
try
{
Process p = new Process();
p.StartInfo.FileName = "cmd";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.OutputDataReceived += new DataReceivedEventHandler(sortProcess_OutputDataReceived);
p.Start();
StreamWriter cmdWriter = p.StandardInput;
p.BeginOutputReadLine();
if (!String.IsNullOrEmpty(cmd))
{
cmdWriter.WriteLine(cmd);
}
cmdWriter.Close();
p.WaitForExit();
p.Close();
}
catch(Exception ex)
{
MessageBox.Show("执行命令失败,请检查输入的命令是否正确!"+ex.ToString());
}
}
private void sortProcess_OutputDataReceived(object sender,DataReceivedEventArgs e)
{
if(!String.IsNullOrEmpty(e.Data))
{
this.BeginInvoke(new Action(() => {
textBox1.Text += e.Data + System.Environment.NewLine;
}));
}
}
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
textBox1.Text = "";
textBox1.Text += "开始设置JAVA变量" + System.Environment.NewLine;
// textBox1.Text += SetPath("JAVA_HOME", @"C:\Program Files\Java\jdk1.8.0_60") + System.Environment.NewLine;
textBox1.Text += SetPath("JAVA_HOME", @"C:\Program Files\Java\jdk1.8.0_05") + System.Environment.NewLine; //32位
textBox1.Text += SetPath("CLASSPATH", @".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar") + System.Environment.NewLine;
textBox1.Text += SetPath("Path", @"%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin", "JAVA") + System.Environment.NewLine;
textBox1.Text += "设置完毕" + System.Environment.NewLine;
// ExcuteDosCommand("java -version"); //为什么不显示结果??
button1.Enabled = true;
}
}
}