如何将连字符作为getopt类中的可选参数

时间:2013-09-25 14:05:09

标签: java

朋友们,我必须在

中将“ - ”作为选项参数
  

Getopt类

我的代码在下面给出

Getopt g = new Getopt("cm_log_parser", args, "i:s"); //-D to enable debug log


while((opt = g.getopt()) != -1)
{
    switch (opt)
    {
        case 'f'://To set file name(if above is not specified)
            fileNameWithPath = getAndCheckOptArg(fFlag, opt, g);
            fFlag = true;
            break;

        case 's'://To set the header
            String separator = getAndCheckOptArg(hFlag, opt, g);
            hFlag = true;
            breakk;
        case '?':
            usage("Invalid option" + opt + " option");
            break;
    }
}

在我想要给出的参数中作为-s“ - ”但它显示出一些错误,如无效选项有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

Getopt中的

--具有特殊含义

  

用户可以强制getopt()使用特殊参数“ - ”单独停止扫描命令行。在“ - ”之前出现的任何元素都会被扫描并正常排列。 “ - ”之后的任何元素都返回为非选项argv元素。例如,“foo -a - bar -d”将返回选项'a',然后返回-1。 optind将指向“foo”,“bar”和“-d”作为非选项argv元素。 getopt()丢弃“ - ”。

所以我担心你无法解决这个问题。

答案 1 :(得分:0)

您可以使用-s-(无空格)执行此操作。我不知道Getopt是否允许这样做。