【问题标题】:Parsing arguments in Java在 Java 中解析参数
【发布时间】:2013-05-19 12:24:03
【问题描述】:

我正在尝试编写一个 Java 包装器,它将在内部调用一个 shell 脚本,将所需的参数传递给脚本。我的班级将按如下方式调用:

MyClass --arg1 value1 --arg2 value2 --arg3 value3 

我想知道解析这些参数的最佳方法是什么?我目前的做法如下:

  • 拆分空格分隔的参数并将它们存储在一个数组中
  • 遍历数组并检查 --argX,然后选择下一个元素作为该参数的值。

但是,我目前的方法对我来说似乎很卑鄙,我正在寻找更好的方法来做到这一点。

【问题讨论】:

  • this 之类的东西应该可以完成这项工作。进一步开发它取决于您。请注意,在 Java 中,您需要使用 \\w 而不是 \w。编码愉快!

标签: java regex pattern-matching command-line-arguments


【解决方案1】:

您可以使用public static void main (String[] args) 将参数传递给您的Java 程序,其中String[] args 将获取值。

例如:YourClass --arg1 1 --arg2 2 --arg3 "Hello world" 将存储在您的 args 数组 {"--arg1", "1", "--arg2", "2", "--arg3", "Hello world"} 中,您应该能够使用此输入和某种“命令解析器”类来运行您的代码,您可以在其中分析选择的输入运行程序。

【讨论】:

    【解决方案2】:

    这个怎么样:

    传递键值对

    java MainClass -Dkey1=value1 -Dkey2=value2

    使用

    System.getProperty("key1")
    

    您可以访问该值。

    【讨论】:

      【解决方案3】:

      Apache Commons CLI 库提供了一个 API,用于解析传递给程序的命令行选项。

      查看Inspired by Actual Events: Command-line Parsing with Apache Commons CLI中的示例

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-26
        • 2019-12-26
        • 2015-06-05
        相关资源
        最近更新 更多