关于Java命令行参数
我为程序设置了以下命令行参数。参数proc是必需的参数chgval是可选的,参数inputfile是可选的 ./test.sh-proc mode1-chval a-inputfile b.csv 我需要修改下面的函数,以便命令行参数中应该存在任意一个可选参数以及强制参数proc。如果命令行中有两个可选参数chval、inputfile以及它现在允许的强制参数proc。我不希望它发生它应该抛出一个错误 下面列出了有效值,其余值应为错误 ./test.sh-过程模式1-chval a ./test.sh-proc mode1-inputfile b.csv ./test.sh-过程模式1关于Java命令行参数,java,string,Java,String,我为程序设置了以下命令行参数。参数proc是必需的参数chgval是可选的,参数inputfile是可选的 ./test.sh-proc mode1-chval a-inputfile b.csv 我需要修改下面的函数,以便命令行参数中应该存在任意一个可选参数以及强制参数proc。如果命令行中有两个可选参数chval、inputfile以及它现在允许的强制参数proc。我不希望它发生它应该抛出一个错误 下面列出了有效值,其余值应为错误 ./test.sh-过程模式1-chval a ./test
public static Options usage() {
Option proc = OptionBuilder.withArgName("proc")
.hasArg()
.isRequired()
.withDescription("Process Mode for testing:")
.create("proc");
Option chgval = OptionBuilder.withArgName("chgval")
.hasArg()
.withDescription("chg eeds to be Processed")
.create("chgval");
Option inputFile = OptionBuilder.withArgName("inputfile")
.hasArg()
.withDescription("Name of the input file")
.create("inputfile");
Options options = new Options();
options.addOption(proc);
options.addOption(chgval);
options.addOption(inputFile);
return options;
}
需要修改什么?如果您的意思是
inputfile
和chgval
应该是互斥的,那么您应该使用如果您的意思是inputfile
和chgval
应该是互斥的,那么您应该使用Dancrumb是正确的,因为您使用的互斥选项。以下是如何在您的案例中使用它:
Options options = new Options();
OptionGroup group1 = new OptionGroup();
group1.addOption(chgval);
group1.addOption(inputFile);
options.addOption(proc);
options.addOptionGroup(group1);
所以现在,chgval
和inputFile
是相互排斥的选项。在像“-proc mode1-chgval a-inputfile b.csv”
这样的参数上,它将抛出一个AlreadySelectedException:
“指定了选项inputfile
,但已从该组中选择了一个选项:chgval
”
顺便说一句,我还注意到你的帖子中
chval
和chgval
之间的不一致性Dancrumb是正确的,因为你使用了相互排斥的选项。以下是如何在您的案例中使用它:
Options options = new Options();
OptionGroup group1 = new OptionGroup();
group1.addOption(chgval);
group1.addOption(inputFile);
options.addOption(proc);
options.addOptionGroup(group1);
所以现在,chgval
和inputFile
是相互排斥的选项。在像“-proc mode1-chgval a-inputfile b.csv”
这样的参数上,它将抛出一个AlreadySelectedException:
“指定了选项inputfile
,但已从该组中选择了一个选项:chgval
”
顺便说一句,我还注意到你的帖子中
chval
和chgval
之间的不一致,闻起来像是家庭作业(你所有的其他问题也是如此)。如果是的话,请给他们贴上标签。闻起来像是家庭作业(就像你所有的其他问题一样)。如果它们是,请标记它们。我需要在上面的函数中更改什么?我需要在上面的函数中更改什么?