日期:2014-05-20  浏览次数:20766 次

初初初学者~请教,java
public class RollDie {
  public static void main (String args[])
  {
  int frequency[],face;
  frequency=new int[7];
  for(int roll=1;roll<=6000;roll++){
  face=1+(int)(Math.random()*6);
  frequency[face]++;
  }
  for (int i=1;i<=6;i++)
  System.out.print("frequency("+i+")\t"+frequency[i]+"\n");
  }
}




出现错误:java.lang.NoClassDefFoundError: RollDie
Exception in thread "main" 
文件名和类名没错,用的是Jbuilder2006 企业版,运行后出现了这个,是不是跟JDK没更新有关系,上次网上有个更新JDK核心,不过老师说不用了,自己不懂,也就没弄了。
还有程序中那个 frequency=new int[7]; 是什么意思,为什么是7,请高手指教。


------解决方案--------------------
应该是JBuilder配置的问题,检查一下运行时的配置
------解决方案--------------------
为什么是7 定义数组长度为7位 也就是存储最多7个数字 face=1+(int)(Math.random()*6); 
定义为7的话 数组就不可能越界了 如果是6可能越界
------解决方案--------------------
没用过jbuilder
------解决方案--------------------
这个可能是你最近安装了什么软件,比如oralce之类的,

把classpath的路径重写了!

你改过来看看!
------解决方案--------------------
初学的话.还是用ultraedit吧!在DOS下编译.
------解决方案--------------------
我也是初学者!
我用EditPlus
然后在命令行下编译这个程序,是正确的

因为:face=1+(int)(Math.random()*6); 
frequency[face]++;
face的值为1、2、3、4、5、6

只有定义为7才会使数组里有frequency[6]啊
否则越界了
------解决方案--------------------
是不是路径设置错了呀