【问题标题】:Exception in thread "main" java.lang.NoClassDefFoundError: [closed]线程“主”java.lang.NoClassDefFoundError 中的异常:[关闭]
【发布时间】:2012-01-28 02:33:45
【问题描述】:

我已经浏览了代码并一遍又一遍地尝试新事物,但似乎无法摆脱这个错误。我正在编写一个程序,我在其中扫描一个文件作为输入,它会通过并找到平均值、最大值和最小值。但是我在代码末尾遇到了问题,我必须为每个分数打分,然后计算每个分数有多少。它编译得很好,但是当我去运行它时 java.langNoClassDefFoundError: 不断出现请帮助。

import java.io.*;
import java.util.*;


class Exam
{
public static void main(String [] args) throws IOException
{
int A;
int B;
int C;
int D;
int F;
// Greets user and prompts to enter name of the file containing there grades.
  System.out.println("***Welcome to the Exam Statistics Program!!***");   
  Scanner cin = new Scanner(System.in);
  System.out.println("Please enter a filename:");
  String filename = cin.next();


// Scanner built for new file and puts grades into an array.  
Scanner file = new Scanner(new FileReader(filename));
  int g;
    g=file.nextInt();
    int [] grades = new int[g];
    for(int i=0; i<grades.length; i++)
    {
      grades[i] = file.nextInt();
    }
    System.out.println("Minimum Score:  " + getMinValue(grades));
    System.out.println("Maximum Score:  " + getMaxValue(grades));
    System.out.println("Average Score:  " + Average(grades));
    System.out.println(" ");
    System.out.println(" ");
    System.out.println(" ");

    System.out.println("A:  " +A);
    System.out.println("B:  " +B);
    System.out.println("C:  " +C);
    System.out.println("D:  " +D);
    System.out.println("F:  " +F);
    System.out.println("The grade count is: "+ g);
}


// Calculates the average of the array and returns the variable containing that values.
static double Average( int [] grades)
{
    double sum=0;
    double x;
    for(int i=0; i<grades.length; i++)
        sum += (double)grades[i];
    if(grades.length==0) return 0;
      x = sum/grades.length;
    return x;

}
// Calculates the lowest grade in the file.
public static int getMinValue(int[] grades)
{  
  int minValue = grades[0];  
  for(int i=1;i<grades.length;i++)
  {

      if(grades[i] < minValue)
      {
        minValue = grades[i];  
      }  
      }return minValue;
}
// Calculates the highest grade in the file.
public static int getMaxValue(int[] grades)
{  
    int maxValue = grades[0];  
    for(int i=1;i < grades.length;i++)
    {  
        if(grades[i] > maxValue)
        {  
          maxValue = grades[i];  
        }  
    }  return maxValue;  
}  

// Adds up the total number of letter grades you have in the file.
public static int countA(int[] grades) //throws IOException
{
  int A=0;
  for(int i=1; i<grades.length;i++)
        {
            if(grades[i]>89||grades[i]<=100)
            {
              A = A++;
            }
        }
  return A;
}
public static int countB(int[] grades)
{
  int B=0;
  for(int i=1; i<grades.length;i++)
        {
            if(grades[i]>79||grades[i]<=89)
            {
              B = B++;
            }
        }
  return B;

}
public static int countC(int[] grades)
{
  int C = 0;
  for(int i=1; i<grades.length;i++)
        {
            if(grades[i]>69||grades[i]<=79)
            {
              C = C++;
            }
        }
  return C;
}
public static int countD(int[] grades)
{
  int D = 0;
  for(int i=1; i<grades.length;i++)
        {
            if(grades[i]>59||grades[i]<=69)
            {
              D = D++;
            }
        }
  return D;
}
public static int countF(int[] grades)
{
  int F = 0;
  for(int i=1; i<grades.length;i++)
        {
            if(grades[i]<=59)
            {
              F = F++;
            }
  }
  return F;
 }
 }

【问题讨论】:

  • 向我们展示带有 NoClassDefFoundException 的堆栈跟踪
  • 找不到哪个类?请提供堆栈跟踪
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: Exam2 原因:java.lang.ClassNotFoundException: Exam2 at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java. security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass( Launcher.java:276) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:251) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  • 您的源文件是否命名为 Exam2.java?
  • 你是如何编译和运行你的代码的。什么是 Exam2.java

标签: java noclassdeffounderror


【解决方案1】:

您的堆栈跟踪显示错误 Exception in thread "main" java.lang.NoClassDefFoundError: Exam2

但是你的班级被命名为Exam。所以把你的文件名从Exam2.java改成Exam.java

【讨论】:

    【解决方案2】:

    在这里,您创建了一个名为 Exam2.java 的 Java 文件。根据 Java 的文件命名约定,您的文件名必须与包含 Main 方法的类名相同。但是根据您的主要方法的课程是考试,所以我建议您将其更改为 Exam2 而不是课程考试。

    【讨论】:

      猜你喜欢
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 2014-11-06
      • 2012-11-18
      • 1970-01-01
      相关资源
      最近更新 更多