public List<String> getProgramExeArgList() throws Exception {
        Map<String, Object> mapConf = PluginUtil.objectToMap(properties);
        List<String> args = Lists.newArrayList();
        for (Map.Entry<String, Object> one : mapConf.entrySet()) {
            String key = one.getKey();
            Object value = one.getValue();
            if (value == null) {
                continue;
            } else if (OPTION_SQL.equalsIgnoreCase(key)) {
                File file = new File(value.toString());
                String content = FileUtils.readFile(file, StandardCharsets.UTF_8.name());
                value = URLEncoder.encode(content, StandardCharsets.UTF_8.name());
            }
            args.add("-" + key);
            args.add(value.toString());
        }
        return args;
    }
The Parser of Launcher commandline options

Company: www.dtstack.com
@author sishu.yss
core/src/main/java/com/dtstack/flink/sql/option/OptionParser.java