Java JAR无法识别cmd行args

时间:2013-06-19 18:22:58

标签: java command-line executable-jar

我创建了一个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

}

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

任何有关错误的建议都会很棒:)

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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