从网上查了些资料,能用Runtime.getRuntime().exec()执行单个命令,问题:
Runtime.getRuntime().exec()能执行依次执行多条命令吗?例如:在linux系统下启动gridftp服务,需要依次运行如下三条命令:
[root@nodeB2 root]# source $GLOBUS_LOCATION/etc/globus-user-env.sh
[root@nodeB2 root]# export GRIDMAP=/opt/globus-4.0.1/etc/grid-mapfile
[root@nodeB2 etc]# /opt/globus-4.0.1/sbin/globus-gridftp-server -p 2811 -S使用Runtime.getRuntime().exec()能做到吗?
Runtime.getRuntime().exec()能执行依次执行多条命令吗?例如:在linux系统下启动gridftp服务,需要依次运行如下三条命令:
[root@nodeB2 root]# source $GLOBUS_LOCATION/etc/globus-user-env.sh
[root@nodeB2 root]# export GRIDMAP=/opt/globus-4.0.1/etc/grid-mapfile
[root@nodeB2 etc]# /opt/globus-4.0.1/sbin/globus-gridftp-server -p 2811 -S使用Runtime.getRuntime().exec()能做到吗?
楼主【zhfj001】截止到2008-07-15 10:06:42的历史汇总数据(不包括此帖):
发帖的总数量:22 发帖的总分数:1170 每贴平均分数:53
回帖的总数量:182 得分贴总数量:103 回帖的得分率:56%
结贴的总数量:22 结贴的总分数:1170
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
r.exec("你的命令");
可以把它设置为环境变量先
Runtime.getRuntime().exec(/*命令2*/).waitFor();
Runtime.getRuntime().exec(/*命令3*/).waitFor();
...public abstract int waitFor() throws InterruptedException
导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。
返回:
进程的出口值。根据惯例,0 表示正常终止。
抛出:
InterruptedException - 如果当前线程在等待时被另一线程中断,则停止等待,抛出 InterruptedException。
// 控制台的输出信息作为输入流
// 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行
InputStream in = process.getInputStream();
// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码
InputStreamReader xx = new InputStreamReader(in, "utf8");
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
// 组合控制台输出信息字符串
BufferedReader br = new BufferedReader(xx);
System.out.println(br.read());
while ((inStr = br.readLine()) != null) {
System.out.println(inStr);
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
提示找不到文件,难道是source命令的缘故,请高手指点。
使用sed -i 's/\r//' auto.sh更改字符就可以了。
Runtime run=Runtime.getRuntime();
run.exec("cmd /c javac Calculator.java");
run.exec("cmd /c java Calculator");
Calculator是个有界面的程序,为什么编译成功,却运行不出来?
Calculator程序文件在当前程序的目录文件中的。