使用枚举时Java中的类未找到错误

时间:2012-06-13 07:51:41

标签: java classnotfoundexception

我有以下代码:

enum CarEnum {
   BMW("BMW"), TOYOTA("Toyota"), FORD("Ford");
   String name;
   CarEnum(String s) {
      name = s;
   }
}
class Cars {
   static CarEnum a;
   public static void main(String[] args) {
      System.out.println(a.BMW.name + " " + a.FORD.name);
   }
}

它位于名为Cars.java的文件中

当我尝试运行此操作时,出现以下错误:

java.lang.NoClassDefFoundError: Car
Caused by: java.lang.ClassNotFoundException: Car
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main" 

为什么说没有找到Car类?

4 个答案:

答案 0 :(得分:2)

1 /您的代码正常工作我立即复制/粘贴

2 /你在你的例外中提到了一个Car类,但你的代码中没有

3 /你确定要推出好的主要方法吗?

答案 1 :(得分:1)

尝试这样:

public class Cars {
   enum CarEnum {
       BMW("BMW"), TOYOTA("Toyota"), FORD("Ford");
       String name;
       CarEnum(String s) {
          name = s;
       }
   }
   static CarEnum a = CarEnum.BMW;
   public static void main(String[] args) {
      //you never initialized your a so you can print
      System.out.println(a.name);
      //or to check all your Enums Names
      System.out.println(CarEnum.BMW.name + " " + CarEnum.Ford.name);
   }
}

答案 2 :(得分:1)

唯一的问题是,当您运行代码时,您提供的命令为java Car,而不是java Cars

答案 3 :(得分:1)

请重新检查文件名。因为错误引用了代码中不可用的Car。尝试将文件重命名为Cars.java