gpt4 book ai didi

java - 如何检查主类java中的命令参数

转载 作者:行者123 更新时间:2023-12-02 10:54:29 24 4
gpt4 key购买 nike

我有以下程序:我有一个 jar 文件,它从主方法获取 4 个参数:输入文件、排序依据、排序方向、输出文件。输入文件是读取信息的文件,order by 是排序方式(test、runs 等)、排序方向(asc、desc),输出文件是保存信息的文件。这是我在主方法中的代码:

      if (args.length > 0)
{
if (args[0].isEmpty())
{
System.out.println("Enter input file");
System.exit(1);
}
else
{
args[0] = inputFile;
}
if (args[1].isEmpty())
{
System.out.println("Enter order by");
System.exit(1);
}
else
{
args[1] = orderBy;
}
if (args[2].isEmpty())
{
System.out.println("Enter sort direction");
System.exit(1);
}
else
{
args[2] = sortDirection;
}
if (args[3].isEmpty())
{
System.out.println("Enter output file");
System.exit(1);
}
else
{
args[3] = outputFile;
}

}
else
{
System.out.println("Must enter parameteres!");
System.exit(0);
}

SaveInfoManager.SaveInFile(inputFile, sortDirection, orderBy, outputFile);

当我不输入某些参数时,出现以下错误:ArraysIndexOutOfBoundsException。示例我不输入第三个参数(即排序方向),并且我想打印未输入的消息。但我不明白为什么即使我做了检查也会抛出该异常。你能告诉我我的错在哪里以及我该如何正确处理吗?

最佳答案

args[n].isEmpty() 检查数组位置 n 中包含的字符串是否为空,这会导致 ArraysIndexOutOfBoundsException 如果数组少于 n 个元素。
为了检查数组的长度,您需要使用

if(args.length == 4){ ... }

关于java - 如何检查主类java中的命令参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51871807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com