通过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);
else
ps = 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");
}
}


其实最主要的一句就是这个
String[] commonds = {"sh","-c","export JAVA_HOME=/usr/java/jdk;echo $JAVA_HOME"};
这个命令的写法.其他的都能Google到.而且据我测试,这些不能写在一起.比如说这样
String tmp_run_cmd = "sh -c 'export JAVA_HOME=/usr/java/jdk;echo $JAVA_HOME'"; //这样是不行的..
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值