public class sum {
public static void main(String[] args) {
int n= Integer.parseInt(args[0]);
int sum=0;
int i=1;
while(i<=n){
sum=sum+i;
i++;
}
System.out.println("n="+n+"sum="+sum);
}
}以上是求和代码,Eclipse下运行,出现
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at sum.main(sum.java:9)
这是什么问题
int n=Integer.parseInt(args[0]);这句代码书上说是有一个n的输入,是什么意思?
我初学JAVA,希望各位大虾多多指点~谢了~

解决方案 »

  1.   

    下标越界,毫无疑问是在int n= Integer.parseInt(args[0]);这个地方的args[0]这个了。
    因为你这里只有这一个地方使用了数组。运行的时候要带参数,你如果直接在eclipse里面默认情况下运行,肯定是没有参数的,所以要设置参数才可以。
      

  2.   

    哥们你怎么同一个问题发这么多贴。。 
    public class Test{ 
    public static void main(String[] args){ 
    sum.main(new String[]{"2"})//new String[]{"3","a"},只要传一个String类型的数组且这个数组至少有一个元素,还有第一个元素必须是个正整数 

    }
      

  3.   

    Scanner方法
    通过控制台输入
      

  4.   

       int n= Integer.parseInt(args[0]);
       这里的n没有值啊,需要从后台输入。
      

  5.   

        lz  好心切啊  发看这么多贴 表扬~~~~~
        这里的n是需要从控制台输入的,你这里的n并没有赋值啊~~~
      

  6.   

        使用Eclipse是可以传递参数的。
    右键单击,选择Run as下的Run选项会弹出一个窗口,在窗口左边选中要执行的类,右边会显示类名,
    在类名的下面有一排选择按钮,点选(x)=Arguments,然后在上面窗口中输入参数,点右下方的Run
    即可执行。
        希望可以帮到你。
      

  7.   

    up~
    直接使用javac编译 java 执行的时候在最后面加上想输入的值就OK了
    eg:
    javac sum.java
    java sum 10
      

  8.   

    这个是要传递参数的,不像其它的直接运行就可以显示的,
        往后你学JAVAWEB开发的话,还会用到WEB页面的
            其实9楼提供的方法,挺不错的(首选),
           11楼的方法也可以,不过要牵涉到路径问题了,详细情况可以去百度查下
      

  9.   

    数组args 必须有值才行,现在他的length为0;args[0]是不能用的