0
点赞
收藏
分享

微信扫一扫

命令行:获取用户命令行参数Option


运行参数:

命令行:获取用户命令行参数Option_java

代码

package com.donews.data.hbaseuser

import java.time.LocalDate
import com.donews.data.util.Dates
import org.apache.commons.cli.{GnuParser, HelpFormatter, Options}

object JdkLogTest{

def main(args: Array[String]): Unit = {

//默认启动时间为昨天和今天
val defaultInterval = IndexedSeq(LocalDate.now().minusDays(1), LocalDate.now())
.map(_.toString)
.mkString("/")

//Option[T]是容器
val options = new Options()
.addOption("h", "help", false, "帮助")
.addOption("i", "interval", true, s"时间区间 ($defaultInterval)")
.addOption("s", "source", true, "源数据名称")

val parser = new GnuParser()
val cmdLine = parser.parse(options, args)

val interval = cmdLine.getOptionValue("i", defaultInterval).split("/")
val (startDay, endDay) = (LocalDate.parse(interval(0)), LocalDate.parse(interval(1)))
println("有 -i 参数时候,且有输入值。如果没有输入值则为默认值")
for (day <- Dates.dateRange(startDay, endDay)) {
println(day)
}

if (cmdLine.hasOption("s")) {
println("有 -s 参数时候")
println(cmdLine.getOptionValue("source"))
}

if (cmdLine.hasOption("h")) {
val formatter = new HelpFormatter()
println("有 -h 参数时候")
formatter.printHelp("StreamingHbase", options)
System.exit(0)
}

}

}

运行结果

有 -i  参数时候,且有输入值。如果没有输入值则为默认值
2016-07-01
2016-07-02
2016-07-03
2016-07-04
有 -s 参数时候
'myfilesource'
有 -h 参数时候
usage: StreamingHbase
-h,--help 帮助
-i,--interval <arg> 时间区间 (2016-10-09/2016-10-10)
-s,--source <arg> 源数据名称

Process finished with exit code 0

举报

相关推荐

0 条评论