未找到类创建对象数组时出现异常

时间:2013-12-27 08:12:29

标签: java classnotfoundexception

所以,我写了这些课:

public class FicherosDeCiudadanos {

   public static int numCiudadanos (File f) {
       try{

           Scanner texto=new Scanner(f);
           int contador=0;
           while(texto.hasNextLine()){
               contador++;
               texto.nextLine();
           }
           texto.close();
           return contador;
       }
   }

   public static  Ciudadano[] leerFichero (File f) {
      try{
          Scanner texto=new Scanner(f);
          //This next line throws classNotFound when debbugging but only 
          //when evaluating Ciudadano[]
          Ciudadano[] tablaCiudadano = new Ciudadano[numCiudadanos(f)];
          ....    
          //TO-DO
   }
}

我确认它有效,而且确实如此,方法leerFichero()完美地完成了这项工作。它创建了一个Ciudadano的对象数组,代码在TO-DO中。但是,在另一个包中,我调用方法leerFichero()并且它到达那里,找出numCiudadanos()来设置数组的长度,但是当它到达Ciudadano[]时它会抛出ClassNotFoundException {1}},程序停止。当我从它自己的包中使用它时它仍然有效。

我猜这是堆栈

Thread [main] (Suspended)   
owns: Object  (id=36)   
owns: Object  (id=37)   
ClassNotFoundException(Throwable).<init>(String, Throwable) line: 286   
ClassNotFoundException(Exception).<init>(String, Throwable) line: not available 
ClassNotFoundException(ReflectiveOperationException).<init>(String, Throwable) line: not available  
ClassNotFoundException.<init>(String) line: not available   
URLClassLoader$1.run() line: not available  
URLClassLoader$1.run() line: not available  
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]   
Launcher$ExtClassLoader(URLClassLoader).findClass(String) line: not available   
Launcher$ExtClassLoader(ClassLoader).loadClass(String, boolean) line: not available 
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available 
Launcher$AppClassLoader.loadClass(String, boolean) line: not available  
Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available  
FicherosDeCiudadanos.leerFichero(File) line: 54 
Operaciones.nombreCliente(int) line: 80 
Operaciones.listadoCompras() line: 37   
TrabajoProg1.ejecutarOperacion(int) line: 40    
TrabajoProg1.main(String[]) line: 22    

3 个答案:

答案 0 :(得分:1)

这可能是构建路径问题。您需要右键单击外部包,然后转到

  

构建路径&gt;配置构建路径

并导航至

  

项目

然后,您点击Add...并添加包含FicherosDeCiudadanos的项目。

确保在您的通话类顶部有以下行:

import package1.FicherosDeCiudadanos

package1是包含FicherosDeCiudadanos

的包裹

答案 1 :(得分:1)

有时调试器与某些类不同步。

尝试清理/构建项目,甚至重新启动Eclipse(或其他IDE)。然后再尝试调试。

答案 2 :(得分:0)

所以,最后这个错误没有任何意义,之后又出现了另一个错误,使得它似乎停止了这个错误。