Java JAR不能识别cmd行参数



我创建了一个JAR文件,它接受3个参数并返回一个字符串,但我的代码似乎不能识别参数值,即使它们是正确的。

我赋值参数:

if (args.length > 1)
 {
    raftcode = args[0];
    Selection =args[1];
    Option = args[2];
    System.out.println("Getting arguments");
 }

我已经检查了它们的值是正确的,但是程序从来没有进入if语句

if (Selection == "Sightings")
{  
            //Get sightings text
}
else if (Selection == "Captures")
{
            //Get captures text
}
else if (Selection == "Myrafts")
{
            //Get my rafts text
}
else if (Selection == "Other")
 {
            // Get other text
}

如果我运行不带参数的代码,它返回使用默认测试变量的字符串,我可以输出参数值。

如果有什么建议就太好了:)

您应该使用.equals而不是==,如下所示

if ("Sightings".equals(Selection))
{  
        //Get sightings text
}

正如其他人所说,您应该与.equals而不是==比较字符串。字符串可以与==进行比较,如果你在任何地方都使用String.intern,但这仍然是有风险的,因为如果你忘记了单个实例,它会失败。

如果您正在广泛使用命令行参数,请查看Commons CLI

最新更新