0


如何在IDEA中实现类似Linux命令那样的外部传参

【背景说明】

IDEA中执行一个程序时,如何就在程序一开始执行给传入你给的参数呢?

【说明】

public static void main(String[] args) throws Exception {}

说明:其实java中main方法里的args这个参数,就是用于接收外部传参的。

【解析传参的代码】

public class OutParamSocketStreamWordCount {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);

        //方式一:通过位置,解析args参数
//        String host = args[0];
//        int port = Integer.parseInt(args[1]);

        //方式二:通过flink中自带的ParameterTool工具类,进行参数名解析
        ParameterTool parameterTool = ParameterTool.fromArgs(args);
        String host = parameterTool.get("host");
        int port = parameterTool.getInt("port");

        DataStreamSource<String> socketDS = env.socketTextStream(host, port);
        SingleOutputStreamOperator<WordCount> sum = socketDS.flatMap(new FlatMapFunction<String, WordCount>() {
            @Override
            public void flatMap(String value, Collector<WordCount> out) throws Exception {
                String[] words = value.split(" ");
                for (String word : words) {
                    out.collect(new WordCount(word, 1));
                }
            }
        }).keyBy(new KeySelector<WordCount, String>() {
            @Override
            public String getKey(WordCount value) throws Exception {
                return value.getWord();
            }
        }).sum("count");

        sum.print();

        env.execute();
    }
}

通过上述两种方式实现外部传参(1.解析位置,2.解析参数名)

此时参数名在代码中已经写完了,但现在直接运行会报错,因为你还没有给其传参。

这样参数就传递完成了,再次运行!

成功

标签: intellij-idea java ide

本文转载自: https://blog.csdn.net/yuanlaishidahuaa/article/details/139359605
版权归原作者 原来是大华啊~ 所有, 如有侵权,请联系我们删除。

“如何在IDEA中实现类似Linux命令那样的外部传参”的评论:

还没有评论