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)
  }
}
相关推荐
X***C86211 小时前
SpringBoot:几种常用的接口日期格式化方法
java·spring boot·后端
Mr_Xuhhh11 小时前
YAML相关
开发语言·python
i***t91911 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
咖啡の猫12 小时前
Python中的变量与数据类型
开发语言·python
前端达人12 小时前
你的App消息推送为什么石沉大海?看Service Worker源码我终于懂了
java·开发语言
汤姆yu12 小时前
基于springboot的电子政务服务管理系统
开发语言·python
全栈师12 小时前
C#中控制权限的逻辑写法
开发语言·c#
o***741712 小时前
基于SpringBoot的DeepSeek-demo 深度求索-demo 支持流式输出、历史记录
spring boot·后端·lua
9***J62812 小时前
Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
java·spring boot·后端
S***q19212 小时前
Rust在系统工具中的内存安全给代码上了三道保险锁。但正是这种“编译期的严苛”,换来了运行时的安心。比如这段代码:
开发语言·后端·rust