| | |
| | | import java.io.InputStreamReader; |
| | | import java.nio.charset.Charset; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @Description: cmd命令工具类 |
| | |
| | | @Slf4j(topic = "cmd") |
| | | public class CmdUtils { |
| | | //启动命令1 |
| | | public static void commandStart(String processName, List<String> command) { |
| | | log.debug("启动外部程序:" + processName); |
| | | command.forEach(v -> log.debug(v + " ")); |
| | | public static void commandStart(String processName, List<String> command, Map<String, String> env) { |
| | | log.debug("启动外部程序:【" + processName+"】"); |
| | | // command.forEach(v -> log.debug(v + " ")); |
| | | log.debug(String.join(" ", command)); |
| | | ProcessBuilder builder = new ProcessBuilder(); |
| | | |
| | | // 获取子进程的环境变量映射 |
| | | if (env != null) { |
| | | env.entrySet().forEach(entry -> { |
| | | log.debug(entry.getKey() + ":" + entry.getValue()); |
| | | }); |
| | | Map<String, String> envMap = builder.environment(); |
| | | envMap.putAll(env); |
| | | } |
| | | //正常信息和错误信息合并输出 |
| | | builder.redirectErrorStream(true); |
| | | builder.command(command); |
| | |
| | | // System.out.println(line); |
| | | // } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | log.error("cmd异常:" + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | // 结束指定名称的进程 |
| | | public static void stopProcess(String processName) { |
| | | log.debug("尝试结束进程:"+processName); |
| | | log.debug("尝试结束进程:" + processName); |
| | | ProcessBuilder builder = new ProcessBuilder("taskkill", "/F", "/IM", processName); |
| | | Process process; |
| | | try { |