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

4 篇文章 0 订阅

【背景说明】

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.解析参数名)

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

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

成功


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值