java - Eclipse "Error: no se pudo encontrar o cargar la clase principal"
git jar (30)
Tengo un proyecto en eclipse en mi computadora portátil que envié a Git https://github.com/chrisbramm/LastFM-History-Graph.git
Funciona completamente en mi computadora portátil y se ejecuta / construye sin problemas, pero en mi escritorio no da Eclipse el error
Error: no se pudo encontrar o cargar la clase principal lastfmhistoryguis.InputPanel
Intenté construir el proyecto desde:
Project>Build Project
Pero nada pasó. Establecí las variables de PATH
en esta computadora en JRE6, JRE7 y JDK 1.7.0 , aunque estos no están configurados en mi computadora portátil.
Tenía un archivo Jar ( last.fm-bindings-0.1.1.jar ) que estaba en mi archivo .classpath
que estaba en la carpeta C: / Users / Chris / Downloads en mi computadora portátil, por lo que no estaba incluido en el árbol git que recientemente incorporé a la carpeta del proyecto y me comprometí, pero no estoy seguro de haberlo hecho bien. ¿Esto también estaría causando un problema pero no hay un argumento principal allí?
No puedo hacer ejercicio ahora, lo que necesito verificar / cambiar.
¿Asumo que ha importado el proyecto a su instalación de eclipse de escritorio? Si ese es el caso, solo debe seleccionar Proyecto> Limpiar. Luego reconstruye tu proyecto. Funcionó como un encanto para mí.
Acabo de tener este problema después de tener el problema de que Windows 8 se haya negado a actualizar mi ruta sin importar a qué haya configurado JAVA_HOME - java -version informó el último JDK en lugar del que guardé en JAVA_HOME. Finalmente conseguí que funcione poniendo ''% JAVA_HOME% / bin;'' al frente de la variable de entorno de ruta en lugar de al final. Luego lancé Eclipse y, de repente, no pude encontrar mi clase principal cuando funcionó bien antes de esto. Lo que hice para arreglarlo fue en las propiedades del proyecto, eliminé la biblioteca existente de JRE de la pestaña de bibliotecas, agregué un JRE nuevo al seleccionar el botón "Agregar biblioteca" y luego seguí las instrucciones para instalar JRE 7 como mi JRE predeterminado. Ahora todo ha vuelto a funcionar.
Algo similar me pasó pocas veces, la única forma que tenía de solucionar esto era eliminar la carpeta de metadatos. Afortunadamente, he encontrado otra manera.
Intenta ir a las propiedades del proyecto > Ruta de creación de Java> pestaña Orden y exportación> selecciona todas (o intenta jugar con las casillas allí).
Esto debería provocar la reconstrucción completa del proyecto y Eclipse para ver la clase principal.
Además: he notado que este error ocurre cuando tienes muchos proyectos en un espacio de trabajo y algunos de ellos están configurados incorrectamente (aparece un signo de exclamación rojo). La reparación de la ruta de compilación del proyecto y otras configuraciones (incluso si este proyecto no está relacionado con el que tiene problemas) debería solucionar un problema.
Bueno, lo siguiente funcionó para mí ...
- Entró en la carpeta del proyecto (dentro del
workspace
) - Luego, eliminó la carpeta
bin
- Luego, proyectos / proyectos limpios (en Eclipse)
- construido / ejecutado desde Eclipse.
Cambie el nombre de la clase con Ctrl + Shift + R (Windows), cambiará el nombre de la clase donde sea que se refiera, y luego haga el procedimiento contrario. En mi caso, fue causado por nombres de clase idénticos en varios proyectos dentro del entorno y Eclipse tuvo dificultades para entender cuál es cuál.
En su classpath, está utilizando una ruta absoluta, pero ha movido el proyecto a una máquina nueva con una estructura de archivos posiblemente muy diferente.
En su classpath, por lo tanto, debería (y probablemente en general si va a agrupar JARS con su proyecto), usar una ruta relativa:
En su cambio de .classpath
<classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/><classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/>
a
<classpathentry kind="lib" path="last.fm-bindings-0.1.1.jar"/>
Encontré otra solución en mi caso este problema: Eclipse->Preferences->Java->Installed JRE
luego presione el botón Buscar. Seleccione la carpeta en Linux /usr
luego Eclipse encontró toda la JVM.
Seleccione otra JVM demasiado actual . Está resuelto para mi caso.
Este problema también se produce cuando tiene caracteres especiales en su ruta de espacio de trabajo. Tenía mi espacio de trabajo en mi carpeta personal y su nombre estaba en griego, por lo que no funcionó. Cambié mi espacio de trabajo, ahora solo contiene caracteres ingleses en su camino, y ahora el proyecto está construido sin ningún problema.
Estos son los pasos simples, que me ayudaron a resolver este problema.
- Cerrar el eclipse
- Elimine la carpeta ".metadata" en su espacio de trabajo. (puede ser una carpeta oculta)
- Abra el eclipse (creará automáticamente la carpeta ".metadata" en su espacio de trabajo)
- Intenta ejecutar el programa.
Hice todas las cosas mencionadas anteriormente, pero ninguna de ellas funcionó para mí
Mi problema se resolvió con abajo.
Haga clic derecho en su proyecto >> propiedades >> JavaBuildPath >> Bibliotecas.
Retire el tarro que tiene una bandera roja en él.
Si todavía tienes el problema, prueba la siguiente solución, esto funcionó para mí cuando volví a enfrentar este problema por segunda vez:
haga clic derecho en proyecto >> Propiedades >> Ruta de compilación Java >> Bibliotecas, Eliminar y Agregar biblioteca. (Elija la biblioteca del sistema JRE)
Me encontré con este error hoy porque configuré un programa hello world y luego corté y pegué un nuevo programa en el mismo archivo. Para solucionar el problema de no encontrar hello world como se llamaba el último, hice clic en Ejecutar-> Ejecutar configuraciones y luego en Clase principal hice clic en buscar y encontré mi nuevo nombre de clase y lo reemplacé con el nombre nuevo correcto en el texto que pegué . Este es un problema para principiantes que conozco pero también es fácil de arreglar. ¡Espero que esto ayude a alguien! Douglas
Me encuentro con el mismo problema, pero en mi caso fue causado por una carpeta fuente faltante (vacía) (existe en el proyecto original, pero no en el repositorio GIT porque está vacío).
Después de crear la carpeta que falta, todo funciona.
Me enfrenté a un problema similar en mi proyecto de aplicación web de maven después de pasar casi una hora, encontré una solución que funcionó para mí. Escribí el siguiente comando maven y funcionó
mvn clean install -U
No sé la razón exacta detrás de esto.
Me enfrenté al mismo error, el error fue en uno de los contenedores externos importados. Después de eliminar ese proyecto jar funcionó para mí.
Me sucedió cuando cambié los JRE instalados a JDK7 en lugar de JRE7. Todo compilado pero no pude ejecutar nada desde Eclipse "eclipse-error-could-not-find-or-load-main-class"
Fijar; volviendo a JRE7 anterior.
Mi Main class
no pudo ser encontrada o cargada, el problema es causado por una razón interesante.
En nuestro proyecto, estamos utilizando Maven
como herramienta de compilación y mi main class
extends
una clase, que está en la class path
pero su alcance fue de test
, mientras que la main class
no está bajo el paquete de prueba.
Si su clase principal extends
una clase, primero intente ejecutar su main class
eliminando la parte extends
. Si se ejecuta, al menos comprenderá que el problema no se debe a la run configuration
de run configuration
o al eclipse
sino que la main class
extends
su main class
.
Pruebe también cambiar el nombre del paquete antes de cambiar la configuración o reinstalarlo.
Obtuve este extraño error sin haber cambiado nada más que unas pocas líneas de código. La reconstrucción no funcionaba, Eclipse no volvería a crear la clase a pesar de que la carpeta bin estaba vacía. Después de cambiar el nombre del paquete de la prueba a la prueba 1, Eclipse comenzó a reconstruir y todo estaba bien.
Recibí este error también, justo después de mover algunos recursos. Comprobando el registro de errores, vi que Eclipse no podía hacer una compilación ya que no podía eliminar un archivo / carpeta. Intente eliminar manualmente la carpeta "bin" (o lo que sea que se llame).
Eso hizo el truco para mí, al menos.
Si creas una clase java con public static void main(String[] args)
, Eclipse ejecutará ese método principal haciendo clic con el botón derecho sobre el archivo o sobre el archivo en el explorador del proyecto, y luego eligiendo:
"Ejecutar como" -> "Aplicación Java".
Una vez hecho esto, Eclipse almacena información sobre su clase, por lo que puede ejecutar fácilmente la clase nuevamente desde el menú Ejecutar como (Botón Reproducción Verde en la barra de herramientas) o desde el diálogo Ejecutar Configuraciones.
Si posteriormente MUEVE la clase java (manualmente, o sin embargo), elija de nuevo
"Ejecutar como" -> "Aplicación Java"
desde la nueva ubicación, Eclipse ejecutará la configuración almacenada original, intentará invocar esta clase desde su ubicación original, lo que causa este error.
Para mí, la solución era ir a las configuraciones de ejecución, (Botón de reproducción verde -> Configuraciones de ejecución) y eliminar todas las referencias a la clase. La próxima vez que corras
"Ejecutar como" -> "Aplicación Java"
Eclipse escribirá una nueva configuración para la clase movida, y el error desaparecerá.
Si está utilizando eclipse, los siguientes pasos resolverán su problema:
Vaya a Ejecutar -> Ejecutar configuraciones -> Búsqueda de clase principal -> Busque su clase manualmente -> Aplicar -> Ejecutar
Si su código es bueno y sabe que tiene un problema de Eclipse, esto lo resolverá.
Simplemente puede eliminar $ yourproject / .classpath, $ yourproject / .project y $ yourworkspace / .metadata. Alguien más mencionó esta opción. Aunque explotará todo tu espacio de trabajo. En lugar:
- Eliminar .classpath y .project de su proyecto
- Elimina tu proyecto en eclipse. NO verifique el contenido del proyecto en el disco.
- Ahora, en un explorador de archivos, vaya a $ yourworkspace / .metadata.
- Busque $ yourprojectname
- Borrar todo lo que encuentre Debería ser seguro-ish para eliminar cualquier cosa en el directorio .metadata.
- En eclipse: Archivo> Importar> General> Proyectos de carpeta o archivo> $ suproyecto> finalizar
- Haga clic con el botón derecho en su proyecto> propiedades> Ruta de compilación de Java> pestaña Origen
- Seleccione todas las carpetas de origen, eliminar.
- Agrega una carpeta, selecciona src (cualquiera que sea tu carpeta src) y agrégala
- Ir a la pestaña de bibliotecas
- Agregue cualquier jar a su ruta de compilación aquí. No debería haber más errores en su proyecto ahora.
- Ejecute su proyecto como lo haría normalmente.
Simplemente vaya a su Package Explorer y presione F5, o para algunas laptops fn + F5. La razón es que eclipse piensa que los archivos están en algún lado, pero los archivos están en otro lugar. Al actualizarlo, los pones a ambos en la misma página. No se preocupe, no perderá nada, pero si quiere tener mucho cuidado, solo haga una copia de seguridad de los archivos de la carpeta de proyectos java.
Sobre todo esto sucede, porque Eclipse limpia los archivos .class
, pero no los construye de nuevo. Verifique la carpeta bin
, debería estar vacía. Entonces deberías verificar si hay algo más que esté causando la falla de construcción. Es posible que haya agregado algunos archivos jar en classpath, que Eclipse podría no ser capaz de encontrar.
Tuve el mismo problema con el archivo .classpath correcto, y pronto descubrí que no se contaba el archivo .classpath (después de haber solucionado este problema, reemplazo el archivo .classpath funcional por el original, el proyecto aún funcionaba, lo que significa que. el archivo classpath no era el caso)
Como es un proyecto de Maven, todo lo que hice fue:
- mvn eclipse: limpio
- eliminar proyecto de eclipse
- importar el proyecto
- hecho
¡Espero eso ayude!
Tuve el mismo problema después de crear un nuevo paquete ("tablas") en mi proyecto.
Fui a la Window -> Show View -> General -> Error Log
y he leído el error:
JavaBuilder handling ImageBuilderInternalException while building: PizzaService
org.eclipse.core.internal.resources.ResourceException: Resource ''/PizzaService/bin/tables'' already exists.
Resultó que tenía un archivo de texto en otra carpeta de origen con el mismo nombre que este nuevo paquete. Así que cambié el nombre del archivo de texto de "Tablas" a "Tablas" y pude ejecutar mi proyecto nuevamente.
Espero que esto ayude.
Tuve el mismo problema y lo resolví usando:
Eclipse Mars
Egit
Github
Maven Project
El problema fue que hice que mi proyecto maven estuviera disponible para github. Movió mi proyecto a mi carpeta github.
Solución:
- Cerrar Eclipse
- Eliminar la carpeta de metadatos dentro de su espacio de trabajo
- Reiniciar Eclipse
Se mostrará la pantalla de inicio.
- Cierre la pantalla de inicio
- Haga clic derecho en el explorador de paquetes
- Eligió "proyecto de importación de maven",
- Navega a tu carpeta github e importa el proyecto maven.
Después de esto mi proyecto compilado con éxito.
Tuve este error. Fue porque tenía static void main(String[] args)
en lugar de public static void main(String[] args)
Pasé casi una hora tratando de resolver eso.
Nota: La única diferencia es que no declaro que main
sea public
Verifique que su proyecto tenga un constructor por:
- compruebe las propiedades del proyecto (en el "explorador de paquetes", haga clic derecho en el proyecto, seleccione "propiedades"), allí la segunda sección es "Constructores", y debe contener el "Creador Java" por defecto
- o busque en el archivo ".project" (en ... / workspace / yourProjectName / .project) la sección "buildSpec" no debe estar vacía.
Debe haber otras formas, pero lo que hice fue:
- cerrar el eclipse
- edite el archivo. "project" para agregar la sección "buildSpec"
- reiniciar eclipse
Un archivo Java ".project" mínimo adecuado debería verse así:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>myProjectName</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Yo tuve el mismo problema. Pasé algunas horas y finalmente cambié mi espacio de trabajo a la carpeta local y todo funciona ahora. Tal vez ahorre algo de tiempo para otros. Jon
tl; dr : Limpie su ruta de compilación completa y todo lo que haya agregado manualmente. Esto incluye fuentes adicionales, Proyectos, Bibliotecas.
- Proyecto -> Limpio
- Asegúrate de que Project -> Build esté activo automáticamente
- Proyecto -> Propiedades -> Ruta de compilación de Java -> Bibliotecas: elimine cualquier biblioteca externa que haya agregado . No elimine las bibliotecas estándar como la Biblioteca del sistema JRE.
- Intenta ejecutar tu clase principal ahora. El error de "clase no se pudo encontrar / cargar" debería desaparecer. Intente agregar sus libs / jars externos uno después del otro.
Motivo detrás de esto: el compilador tenía problemas para vincular las bibliotecas al proyecto. Falló y produjo un mensaje de error incorrecto.
En mi caso, debería haber sido algo así como "No se pudo agregar AutoHotkey.dll a la ruta de compilación" porque eso fue lo que hizo que fallara el compilador.
Si esto todavía no funciona, eche un vistazo al ErrorLog incorporado de Eclipse :
Ventana -> Mostrar vista -> General -> Registro de errores