0

我有我想在命令行作为 jar 运行的 java 程序。但是在我运行处理数据的函数之前,我需要满足两个条件。1.args[0]必须是整数。2. 需要恰好有 2 个参数。如果不满足这些条件,我希望弹出一条错误消息,然后系统退出。我想我可以做到#1 正确,但我将如何将两者结合起来?

public static void main(String[] args) throws IOException
 {
    try
    {
        int x = Integer.parseInt(args[0]);
        process(x, args[1]);    
    }
    catch(NumberFormatException e)
    {
        System.output.println("Please enter an integer");
    }


 }
4

4 回答 4

2

然后,这是您应该编写的代码:

 public static void main(String[] args) throws IOException {
    if(args == null || args.length != 2) {
        System.out.println("You have not entered the required two parameters");
        return;
    }
    try {
        int x = Integer.parseInt(args[0]);
        process(x, args[1]);
    } catch (NumberFormatException e) {
        System.out.println("Please enter an integer");
    }


}

请注意,您的 System.output.println("请输入一个整数"); 中存在编译错误。声明,而是:

System.out.println("Please enter an integer");
于 2013-03-29T16:01:17.507 回答
0

args.length 会给你参数的数量,所以添加类似

if(args.length != 2)
{
  throw new IOException(argumentDescriptionHere);
}
于 2013-03-29T15:59:15.057 回答
0

你可以像这样做#2:

if (args.length < 2)
{
  System.err.println("Need 2 arguments!");
  System.exit(-1)
}
于 2013-03-29T16:00:51.800 回答
0
public static void main(String[] args) throws IOException
 {
    try
    {
        if(args == null || args.length != 2)
        {
           System.out.println("Invalid arguments");
        }
        else{
            int x = Integer.parseInt(args[0]);
            process(x, args[1]);   
        } 
    }
    catch(NumberFormatException e)
    {
        System.out.println("Please enter an integer");
    }


 }
于 2013-03-29T16:01:12.180 回答