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)
  }
}
相关推荐
我滴老baby13 分钟前
工具调用全景解析从Function Calling到MCP协议的完整实践
开发语言·人工智能·python·架构·fastapi
小李子呢021113 分钟前
前端八股JS---Map / Set / WeakMap / WeakSet
开发语言·前端·javascript
feifeigo12314 分钟前
自适应大邻域搜索(ALNS)算法的MATLAB 实现
开发语言·算法·matlab
沐知全栈开发25 分钟前
API 类别 - 实用工具
开发语言
AskHarries28 分钟前
GPT-Image-2(img2)到底能做什么?
后端
Cx330❀31 分钟前
Qt 入门指南:从零搭建开发环境到第一个图形界面程序
xml·大数据·开发语言·网络·c++·人工智能·qt
Leinwin31 分钟前
GPT-5.5 Instant API接入教程:免费额度、速率限制与最佳实践
后端·python·flask
SilentSamsara32 分钟前
装饰器基础:从闭包到装饰器的自然演变
开发语言·前端·vscode·python·青少年编程·pycharm
Xidaoapi38 分钟前
从零搭建一个AI Agent:Python实战指南
后端
今天长肉了吗1 小时前
风控指标平台实战:大数据量下如何设计分批处理
开发语言·数据库·python