通过java代码动态设定Linux系统的环境变量
首先废话几句,原来一直在网易的博客写这种文章,不过越看越觉得还是在JE里比较给力.然后就做了一个非常艰难的决定,以后有需要记录的东西就写在这里.呵呵.
今天说的是通过java代码动态设定Linux系统的环境变量.老实说我这两天Google了好久也没查到如何做.可能实际用途并不是很大.但是找了半天既然解决了就记录下吧..在这里,感谢下我的同事(师傅)雪饼的帮助.
import java.io.BufferedInputStream;import java.io.File;import java.io.IOException;import java.io.InputStream;public class ExecuteCmd {/** * @param args */public static void main(String[] args) {String[] commonds = {"sh","-c","export JAVA_HOME=/usr/java/jdk;echo $JAVA_HOME"};RunSystemCommand(commonds, null);}public static void RunSystemCommand(String[] command, File file) {if (command != null && !command.equals("")) {try {Process ps = null;if (file != null)ps = Runtime.getRuntime().exec(command, null, file);elseps = Runtime.getRuntime().exec(command);String message = loadStream(ps.getInputStream());String errorMeg = loadStream(ps.getErrorStream());System.out.println(message);System.out.println("-------");System.out.println(errorMeg);try {ps.waitFor();} catch (InterruptedException e) {e.printStackTrace();}} catch (IOException e) {e.printStackTrace();}}}private static String loadStream(InputStream in) throws IOException {int ptr = 0;in = new BufferedInputStream(in);StringBuffer buffer = new StringBuffer();while ((ptr = in.read()) != -1) {buffer.append((char) ptr);}return new String(buffer.toString().getBytes("ISO-8859-1"), "GBK");}}