在java中传递-d选项

在java中传递-d选项,java,Java,我正在解决一个问题,其中要求程序应该允许用户使用-d命令行选项设置参数。java是否提供了使用-d选项传递参数的机制?我找不到任何选项,所以我将其解释为命令行选项值为-d,这意味着用户希望接下来输入参数 if ( args[0].equals("-d") ) { parameter = args[0]; } 这样检查对吗?是否有更好的方法检查用户是否输入了-d选项?java是否为此提供了其他机制?如果有人用/yourapp-something-d运行程序会怎么样? 现在参数-d存在,

我正在解决一个问题,其中要求程序应该允许用户使用-d命令行选项设置参数。java是否提供了使用-d选项传递参数的机制?我找不到任何选项,所以我将其解释为命令行选项值为-d,这意味着用户希望接下来输入参数

if ( args[0].equals("-d") )
{
     parameter = args[0];
}

这样检查对吗?是否有更好的方法检查用户是否输入了
-d
选项?java是否为此提供了其他机制?

如果有人用
/yourapp-something-d
运行程序会怎么样? 现在参数-d存在,但不在位置0上

所以,我的建议是遍历所有的参数并检查您需要什么

int i;
boolean dParam = false;
for (i = 0; i < args.length; i++) {
    if (args[i].equals("-d")) {
        dParam = true;
    }
}
inti;
布尔值dParam=false;
对于(i=0;i
如果您希望用户在-d之后输入一些内容,例如文件名,那么我建议您这样做:

int i;
boolean dParam = false;
String dParamValue;

for (i = 0; i < args.length; i++) {
    if (args[i].equals("-d")) {
        dParam = true;
        dParamValue = args[++i];
    }
}
inti;
布尔值dParam=false;
字符串参数值;
对于(i=0;i
如果有人用
/yourapp-something-d
运行该程序怎么办? 现在参数-d存在,但不在位置0上

所以,我的建议是遍历所有的参数并检查您需要什么

int i;
boolean dParam = false;
for (i = 0; i < args.length; i++) {
    if (args[i].equals("-d")) {
        dParam = true;
    }
}
inti;
布尔值dParam=false;
对于(i=0;i
如果您希望用户在-d之后输入一些内容,例如文件名,那么我建议您这样做:

int i;
boolean dParam = false;
String dParamValue;

for (i = 0; i < args.length; i++) {
    if (args[i].equals("-d")) {
        dParam = true;
        dParamValue = args[++i];
    }
}
inti;
布尔值dParam=false;
字符串参数值;
对于(i=0;i
传递给正在运行的程序的所有参数都通过main方法中的参数String[]args进入应用程序

然后,只需检查参数数组是否包含该键,就可以检查字典是否已被请求

例子:
传递给正在运行的程序的所有参数都通过main方法中的参数String[]args进入应用程序

然后,只需检查参数数组是否包含该键,就可以检查字典是否已被请求

例子:
我认为这个要求是指
-D
(大写),而不是
-D
。这些选项用于向java传递额外的参数。例如,
-Dmy.option=value
。在这种情况下,您可以通过
系统
类访问此属性:

String myOption = System.getProperty("my.option");

我认为这个要求是指
-D
(大写),而不是
-D
。这些选项用于向java传递额外的参数。例如,
-Dmy.option=value
。在这种情况下,您可以通过
系统
类访问此属性:

String myOption = System.getProperty("my.option");

使用命令行参数解析器。(无隶属关系)是我的首选-还有其他。那么
parameter=“-d”
,或
null
-这就是您想要的吗?例如,看看ApacheCommons CLI;并使用命令行参数解析器。(无隶属关系)是我的首选-还有其他。那么
parameter=“-d”
,或
null
-这就是您想要的吗?例如,看看ApacheCommons CLI;这看起来就像是重新发明了一个轮子。你的车充其量也有点方形……它不是在改造轮子。这是OP的初始代码的更新版本,可以正常工作。这看起来就像是重新发明了一个轮子。你的车充其量也有点方形……它不是在改造轮子。这是OP的初始代码的更新版本。