--key=value 格式的 Java 命令行参数

2022-09-03 12:25:00

有没有一种智能/简单的方法来使用 --key=value 格式的命令行参数?我只是快速地对args[i]进行了检查,以查看它是否包含我的一个键,然后获取该键的值并为它设置一个变量,但是必须有更好的方法。我似乎无法通过谷歌搜索找到任何好东西,所以我一定是在搜索错误的东西。任何想法/见解?

谢谢!


答案 1

尝试该选项,允许设置配对:-Dkey=value

运行命令;注意-Dkey

  • java -Dday=Friday -Dmonth=Jan MainClass

在代码中:

String day = System.getProperty("day");
String month = System.getProperty("month");

答案 2

截至目前,无法转换为Map而不是String。--key=value

public static void main(String[] args) {

    HashMap<String, String> params = convertToKeyValuePair(args);

    params.forEach((k, v) -> System.out.println("Key : " + k + " Value : " + v));

}

private static HashMap<String, String> convertToKeyValuePair(String[] args) {

    HashMap<String, String> params = new HashMap<>();

    for (String arg: args) {

        String[] splitFromEqual = arg.split("=");

        String key = splitFromEqual[0].substring(2);
        String value = splitFromEqual[1];

        params.put(key, value);

    }

    return params;
}

希望这有帮助!


推荐