docs: public static Process exec(String[] envp, File dir, String... cmds) {
  		if (ArrayUtil.isEmpty(cmds)) {
  			throw new NullPointerException("Command is empty !");
  		}
  
  		// 单条命令的情况
  		if (1 == cmds.length) {
  			final String cmd = cmds[0];
  			if (StrUtil.isBlank(cmd)) {
  				throw new NullPointerException("Command is empty !");
  			}
  			cmds = StrUtil.splitToArray(cmd, StrUtil.C_SPACE);
  		}
  		try {
  			return Runtime.getRuntime().exec(cmds, envp, dir);
  		} catch (IOException e) {
  			throw new IORuntimeException(e);
  		}
  	}