0

コマンドラインでjarとして実行したいJavaプログラムがあります。しかし、データを処理する関数を実行する前に、満たす必要がある 2 つの条件があります。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("Please enter an integer"); にコンパイル エラーがあることに注意してください。声明、それはむしろ:

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

このように#2を行うことができます:

if (args.length < 2)
{
  System.err.println("Need 2 arguments!");
  System.exit(-1)
}
于 2013-03-29T16:00:51.800 に答える
0

args.length は引数の数を与えるので、次のようなものを追加します

if(args.length != 2)
{
  throw new IOException(argumentDescriptionHere);
}
于 2013-03-29T15:59:15.057 に答える
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 に答える