5

Tengo un proyecto que he estado desarrollando en Eclipse 3.7.2 en Ubuntu 12.04. Recientemente, he reestructurado la jerarquía de clases que implica mover clases entre paquetes. No moví mi clase principal ("ob3.converter.Converter"), que contiene mi método public static void main(String[] args).Proyecto Broken Eclipse - classNotFoundException - no se pudo encontrar la clase principal

Ahora, cuando intento ejecutarlo, me sale:

Exception in thread "main" java.lang.NoClassDefFoundError: ob3/converter/Converter 
Caused by: java.lang.ClassNotFoundException: ob3.converter.Converter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: ob3.converter.Converter. Program will exit. 

sólo he trabajado realmente (en Java) con Eclipse, que se encarga de todos los gastos indirectos para mí - por lo tanto tengo poco conocimiento de este error o lo que podría causarlo. He revisado mi configuración de ejecución/Classpath, etc., pero sin saber qué buscar, fue infructuoso.

¿Alguien podría apuntarme en la dirección correcta? Busqué en Google/buscar SO, y la mayoría de las cosas hablan de un archivo de manifiesto, pero no he podido encontrarlo en ninguna parte. Mi carpeta de espacio de trabajo no contiene más que mis archivos fuente.

puedo comprobar:

  • La clase "convertidor" existe en el paquete "ob3.converter".
  • La clase "Convertidor" contiene un método public static void main(String[] args).
  • La pestaña "Fuente" en la página Ruta de compilación de Java en Propiedades del proyecto muestra "converter/lib" y "converter/src" - estas 2 carpetas contienen todo el origen de mi proyecto.
  • El JRE utilizado en la configuración de ejecución/JRE es "java-6-openjdk-amd64".
  • La pestaña ClassPath en la configuración de ejecución se parece a esto:
    • entradas boostrap:
      • JRE biblioteca del sistema [java-6-OpenJDK amd64]
    • Entradas de Usuario:
      • convertidor (ruta de clases predeterminada)
        • convertidor
  • El camino a Converter.java no ha cambiado desde que la última ejecución con éxito.

¡Toda ayuda es muy apreciada!

+0

Si puede publicar una captura de Eclipse con la estructura del paquete ampliado, y la clase convertidor abierto en el editor. ¿Su proyecto muestra algún error en el explorador de paquetes? ¿Algún error en la vista de problemas? – devang

+4

¿Has probado los trucos estándar para lidiar con un espacio de trabajo de Eclipse "confuso"? Actualice (F5) el espacio de trabajo. Reinicie Eclipse. Cierre/abra el proyecto. Elimine el proyecto (¡NO verifique la eliminación desde el disco!) Y vuelva a importarlo. –

+0

Cuando dice ejecutar, asumo que está haciendo clic en el ícono de ejecución en la parte superior. Intenta con hacer clic derecho en la clase Convertidor en la vista del paquete y selecciona ejecutar como -> aplicación Java. –

Respuesta

2

Creo que deberías reconstruir tu proyecto. Puede hacerlo haciendo clic en Proyectos> Limpiar ...

A veces, la compilación automática de Eclipse tiene problemas con la refactorización o el movimiento de las clases.

0

Me encontré con este mismo mensaje de error. Para mí, estaba en Linux y el usuario que emite el comando java no tenía suficientes permisos para el directorio de los archivos jar en el classpath.

Cuestiones relacionadas