public static List<String> extractArgs(String args) {
        List<String> programArgs = new ArrayList<>();
        if (StrUtil.isNotEmpty(args)) {
            String[] array = args.split("\\s+");
            Iterator<String> iter = Arrays.asList(array).iterator();
            while (iter.hasNext()) {
                String v = iter.next();
                String p = v.substring(0, 1);
                if (p.equals("'") || p.equals("\"")) {
                    String value = v;
                    if (!v.endsWith(p)) {
                        while (!value.endsWith(p) && iter.hasNext()) {
                            value += " " + iter.next();
                        }
                    }
                    programArgs.add(value.substring(1, value.length() - 1));
                } else {
                    programArgs.add(v);
                }
            }
        }
        return programArgs;
    }
@Test
    void extractArgs() {
        List<String> args1 = ExecuteJarOperation.extractArgs(
                "merge_into --warehouse hdfs:///tmp/paimon --database default --table T --source_table S --on \"T.id = S.order_id\" --merge_actions matched-upsert,matched-delete --matched_upsert_condition \"T.price > 100\" --matched_upsert_set \"mark = 'important'\"  --matched_delete_condition \"T.price < 10\"");
        Assert.assertArrayEquals(args1.toArray(new String[0]), RESULT1.toArray(new String[0]));
    }