小弟为初学者,遇到一问题,望各位大虾赐教.在此谢过..
import java.io.*;
import java.awt.*;
import java.util.*;
import java.lang.*; 
class daydiff
{
 public static void main(String args[])
 {
args[0]="11111";
  }
 }
编译时系统报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at daydiff.main(daydiff.java:9)
请问,我这样赋值方法有什么问题,应该如何正确调用main的参数呢?

解决方案 »

  1.   

    第一次看到楼主这样的写法。
    举个例子来说 javac -version
    "-version"才是参数。你只需要在程序里判断有没有参数,参数有几个,每一个参数是什么就行了。
      

  2.   

    加个判断语句啊
    if(args.length != 0)
    在执行时候写java daydiff XXXXXXXXX
      

  3.   

    哈哈,想法很独特呀
       
        不知道你这个程序在运行的时候带上参数会如何?
       
        如果你不带参数的话,args[0] 就没有分配空间呀.
      

  4.   

    import java.io.*;
    import java.awt.*;
    import java.util.*;
    import java.lang.*; 
    class daydiff
    {
     public static void main(String args[])
     {
    args[0]="11111";
      }
     }因为执行时没有设置运行参数,所以args=null,调用args[0]是就会有越界错误
      

  5.   

    就算没有参数传给 java YourClassWithMainMethod ,args 数组也不为空,JDK1。5 试验通过
    而且只有你传入的参数会成为数组的成员,类名以及java不会存入数组的。
    JF
      

  6.   

    if args.length!=0
       args[0] = "1111";如果输入参数不为空的话,给输入参数第一个赋值“1111”.
      

  7.   

    不用判断 我试了一下
    java daydiff adfnasdf
    结果 1111 哈哈..覆盖了..!
      

  8.   

    args[i]是运行时刻 所给的参数
    必须是String[]直接赋制值是不行的,要这样:
    java Name  **
      

  9.   

    这个叫数组下标越界异常
    你初始化的数组长度为0,确副给它一个值,你说这不矛盾吗?
    可以这样;
    args[]="11111";
    还有最好这样:
    public  class daydiff
      

  10.   

    改为
    if (args[0] != null) {
       ....
    }