准备: tip_alarm.sh 脚本 放在 /opt/shi/路径下 (路径自定义)
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class JaveShellUtil {
public static int ExecCommand(String command) {
int retCode = 0;
try {
ProcessBuilder builder1 = new ProcessBuilder("/bin/chmod", "755", "/opt/shi/tip_alarm.sh");
Process process1 = builder1.start();
process1.waitFor();
System.out.println("111111111111111111111111");
Process process = Runtime.getRuntime().exec(new String[] { "/bin/sh", "-c", command }, null, null);
retCode = process.waitFor();
ExecOutput(process);
} catch (Exception e) {
retCode = -1;
e.printStackTrace();
}
return retCode;
}
public static boolean ExecOutput(Process process) throws Exception {
if (process == null) {
return false;
} else {
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
String output = "";
while ((line = input.readLine()) != null) {
output += line + "\n";
}
input.close();
ir.close();
if (output.length() > 0) {
System.out.println(output);
}
}
return true;
}
public static void main(String[] args) {
String command="/opt/shi/tip_alarm.sh";
int retCode=JaveShellUtil.ExecCommand(command);
System.out.println(retCode+"retCode");
if(retCode==0){
System.out.println("success.....");
}else{
System.out.println("error.....");
}
}
}
执行main方法
(base) [root@localhost shi]# java JaveShellUtil
111111111111111111111111
Hello World!
0retCode
success.....