为什么`java.lang.ArrayIndexOutOfBoundsException:0`带有`main`方法参数

时间:2014-03-02 18:50:42

标签: java arrays timestamp

我的代码中的错误在哪里?

package My;

import java.text.SimpleDateFormat; 
import java.util.Date; 
public class Hello { 
    public static void main(String[] args) { 
        Date now = new Date(); 
        SimpleDateFormat formatter = 
        new SimpleDateFormat("MMM/dd/yyyy HH:mm:ss"); 
        String formattedDate = formatter.format(now); 
        System.out.println(formattedDate + "> Hello, " + args[0] + "!"); 
    }
}

out put是

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at My.Hello.main(Hello.java:11)

} 

2 个答案:

答案 0 :(得分:3)

您需要从命令行传递参数。请参阅 official docs

代码:

package My;

import java.text.SimpleDateFormat;
import java.util.Date;
public class Hello {
    public static void main(String[] args) {
        Date now = new Date();
        SimpleDateFormat formatter =
        new SimpleDateFormat("MMM/dd/yyyy HH:mm:ss");
        String formattedDate = formatter.format(now);
        System.out.println(formattedDate + "> Hello, " + args[0] + "!");
    }
}

编译和执行:

enter image description here

答案 1 :(得分:1)

JVM抛出异常bcoz数组中的索引0处没有元素。所以在运行类时提供参数或者只是添加下面的代码以便不会引发异常:

    if(args.length >= 1)
       {
           System.out.println(formattedDate + "> Hello, " + args[0] + "!"); 
       }

传递参数如下:

java My.Hello BHARAT