Don’t say much, just go to the code.
package org.bood.common.utils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Properties;
/**
* 执行命令行命令
*
* @author bood
* @since 2020/10/16
*/
public class CommandUtils {
private CommandUtils() {
}
/**
* <p>
* 执行命令
* </p>
*
* @param commandLine: 命令
* @return:java.lang.String
* @author:bood
* @date:2020/10/16
*/
public static String execute(String commandLine) throws Exception {
String[] cmd = new String[3];
Properties props = System.getProperties();
String osName = props.getProperty("os.name").toLowerCase();
String charset=null;
String result="";
if (osName.startsWith("windows")) {
cmd[0] = "cmd.exe";
cmd[1] = "/C";
cmd[2] = commandLine;
charset="GBK";
} else if (osName.startsWith("linux")) {
cmd[0] = "sh";
charset="UTF-8";
}
Process ps = Runtime.getRuntime().exec(cmd);
String line = null;
BufferedReader input = new BufferedReader(new InputStreamReader(ps.getInputStream(),charset));
while ((line = input.readLine()) != null) {
result+=line+"\n";
}
input.close();
ps.destroy();
return result;
}
}