0

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

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

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

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

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

4

3 回答 3

2

这个怎么样:

传递键值对

java MainClass -Dkey1=value1 -Dkey2=value2

使用

System.getProperty("key1")

您可以访问该值。

于 2013-05-24T00:36:34.360 回答
2

public static void main (String[] args)您可以使用whereString[] args将参数传递给您的 Java 程序。

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

于 2013-05-24T00:11:58.523 回答
1

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

请参阅受实际事件启发的示例:使用 Apache Commons CLI 进行命令行解析

于 2013-05-24T00:07:10.477 回答