1.介绍
有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本。而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法
package com.company;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.lang.InterruptedException;
public class Main {
public static void main(String[] args) {
Process process=null;
String url="zhangyifang";
String[] cmd={"echo",url}; //写好shell命令
try {
process = Runtime.getRuntime().exec(cmd); //用Runtime类实现
BufferedReader reader = new BufferedReader(
new InputStreamReader(
process.getInputStream()));
String data = "";
while ((data = reader.readLine()) != null) {
System.out.println(data);
}
int exitValue = process.waitFor();
if (exitValue != 0) {
System.out.println("error"); //若出现异常,输出“error”
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.注意:如果把命令放到一个String[]中时,必须把命令中每个部分作为一个元素存在String[]中,或者是把命令按照空格符分割得到的String[]。
String[] cmd = {"tar", "-cf", tarName, fileName}; //right
String[] cmd = {"tar -cf", tarName, fileName}; //error