scala解析命令行参数

如何用scala解析命令行参数:

首先,需要在项目中添加Apache Commons CLI库的依赖。可以在build.sbt文件中添加如下行:

libraryDependencies += "commons-cli" % "commons-cli" % "1.4"

Scala 复制代码
import org.apache.commons.cli.{Options, CommandLineParser, DefaultParser, HelpFormatter, ParseException}

object CommandLineParserExample {

  def main(args: Array[String]): Unit = {
    // 创建Options对象,用于存储命令行选项
    val options = new Options()
    options.addOption("h", "help", false, "显示帮助信息")
    options.addOption("f", "file", true, "指定文件路径")

    // 创建命令行解析器
    val parser: CommandLineParser = new DefaultParser()

    try {
      // 解析命令行参数
      val cmd = parser.parse(options, args)

      // 检查是否包含帮助选项
      if (cmd.hasOption("h")) {
        printHelp(options)
      } else {
        // 获取文件路径选项的值
        val filePath = cmd.getOptionValue("f")
        println(s"指定的文件路径是:$filePath")
      }
    } catch {
      case e: ParseException =>
        println(s"解析命令行参数时发生错误:${e.getMessage}")
        printHelp(options)
    }
  }

  // 显示帮助信息
  def printHelp(options: Options): Unit = {
    val formatter = new HelpFormatter()
    formatter.printHelp("CommandLineParserExample", options)
  }
}
相关推荐
GetcharZp17 小时前
GitHub 49K+ Star!C++ 开发者必知的 JSON 神级库:从零到精通全指北
后端
fqbqrr18 小时前
2606C++,C++构的多态
开发语言·c++
xujinwei_gingko18 小时前
SpringBoot整合WebSocket
spring boot·后端·websocket
智码看视界18 小时前
现代Web开发基础:全栈工程师的起航点
前端·后端·c5全栈
程序员cxuan18 小时前
Claude Fable 5 来了
人工智能·后端·程序员
biter down18 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
JS菌18 小时前
手写一个 AI Agent 全栈项目:从沙箱执行到子智能体的完整实现
前端·人工智能·后端
wang090719 小时前
自己动手写一个spring之IOC_2
java·后端·spring
ltl19 小时前
推理退化:为什么大模型会输出乱码、死循环和无意义文本
后端