Eliminación de errores de Eclipse java: fuente no encontrada

Al depurar una aplicación java en eclipse, recibo un error de ” Fuente no encontrada ” en dos casos:

  • Entrar en un archivo en un proyecto diferente que ya está importado
  • Ingresando a un archivo en un repository maven instalado

Los archivos están ahí, pero eclipse no entrará en ellos, en su lugar muestra un botón para ” adjuntar fuente

Traté de adjuntar (que abrió un cuadro de diálogo para definir una variable ?!) y eclipse saltó al archivo, pero el depurador no pudo inspeccionar ninguna variable allí. También adjuntar manualmente la fuente para cada dependencia no es práctico, ya que en mi caso hay miles de archivos de dependencia.

Soy nuevo en eclipse \ java, así que una explicación de por qué está sucediendo esto + cómo resolver esto ayudaría mucho.

La depuración de Eclipse funciona con la clase realmente cargada por el progtwig.

Los síntomas que describes parecen indicar que la clase en cuestión no se encontró en el proyecto, sino en un contenedor de distribución sin información de depuración que se encontró antes del proyecto con el que estás trabajando.

Esto puede suceder por varias razones, pero eche un vistazo a la ubicación donde se encuentran las clases que muestran este comportamiento (busque en el panel de navegación para identificarlo). Lo más probable es que necesite cambiar la ruta de comstackción del proyecto para evitar el uso de este jar y hacer que JVM use el proyecto.

EDITAR: Tenga en cuenta que a partir de 2018 es común utilizar un marco de comstackción como Maven, donde la ruta de comstackción se gestiona mediante el plugin m2e, por lo que este problema debería ser muy menos frecuente que cuando se formuló la pregunta.

Solo 3 pasos para configurar Eclipse IDE:

Nota: Después de actualizar las rutas de búsqueda de origen, deberá detener y reiniciar su sesión de depuración. De lo contrario, el archivo con la fuente faltante continuará mostrando “fuente faltante”.

Editar búsqueda de origen Seleccione el comando Editar búsqueda de fuente … [Editar búsqueda de origen] para abrir el cuadro de diálogo Ruta de origen, que le permite realizar cambios en la ruta de búsqueda de origen del objective de depuración seleccionado.

enter image description here

enter image description here

enter image description here

IMPORTANTE Reinicie Eclipse después de este último paso.

Los síntomas describen perfectamente el caso cuando la clase encontrada no tiene una fuente asociada (o asignada).

  • Puede asociar las fonts para las clases JDK en Preferencias> Java> JRE instalado . Si JRE (no JDK) se detecta como JRE predeterminado para ser utilizado, entonces sus clases JDK no tendrán fonts adjuntas. Tenga en cuenta que, no todas las clases JDK han proporcionado fonts, algunas de ellas se distribuyen solo en forma binaria.
  • Las clases de la ruta de comstackción del proyecto, añadidas manualmente, requieren que se adjunte manualmente la fuente asociada. La fuente puede residir en un archivo zip o jar, en el espacio de trabajo o en el sistema de archivos. Eclipse escaneará el archivo comprimido, por lo que sus fonts no tienen que estar en la raíz del archivo, por ejemplo.
  • Clases, desde dependencias provenientes de otros complementos (maven, PDE, etc.). En este caso, depende del plugin cómo se proporcionará la fuente.
    • PDE requerirá que cada complemento tenga el correspondiente paquete XXX.source , que contiene el origen del complemento. Más información se puede encontrar aquí y aquí .
    • m2eclipse puede buscar fonts y javadocs para las dependencias de Maven si están disponibles. Esta característica debería habilitarse en las preferencias de m2eclipse (la opción se denominó algo así como ” Descargar fuente y javadocs “.
    • Para otros complementos, deberás consultar su documentación
  • Las clases que se cargan desde su proyecto se emparejan automáticamente con las fonts del proyecto.

Pero, ¿qué sucede si Eclipse aún sugiere que adjunte una fuente, incluso si configuro correctamente mis clases y sus fonts?

Esto casi siempre significa que Eclipse está encontrando la clase de un lugar diferente de lo que esperaba. Inspeccione su ruta de búsqueda de origen para ver dónde podría obtener la clase incorrecta. Actualice la ruta de acuerdo con sus hallazgos.

Eclipse no encuentra nada en absoluto, cuando se llega al punto de interrupción:

Esto sucede cuando la ruta de búsqueda de origen no contiene la clase, que actualmente está cargada en el tiempo de ejecución. Incluso si la clase está en el área de trabajo, puede ser invisible para la configuración de inicio, porque Eclipse sigue estrictamente la ruta de búsqueda de origen y solo adjunta las dependencias del proyecto, que actualmente está depurado.

Una excepción son los paquetes de depuración en PDE . En este caso, dado que el tiempo de ejecución se compone de varios proyectos, que no tienen que declarar dependencias entre sí, Eclipse buscará automáticamente la clase en el espacio de trabajo, incluso si no está disponible en la ruta de búsqueda de origen.

No puedo ver las variables cuando alcanzo un punto de interrupción o simplemente abre la fuente, pero no selecciona la línea de punto de interrupción:

Esto significa que, en el tiempo de ejecución, la JVM o las clases en sí mismas no tienen la información de depuración necesaria. Cada vez que se comstackn las clases, se puede adjuntar información de depuración. Para reducir el espacio de almacenamiento de las clases, a veces esta información se omite, lo que hace que la depuración de dicho código sea dolorosa. Su única posibilidad es intentar y recomstackr con la depuración habilitada.

El visor de origen Eclipse muestra líneas diferentes a las que se ejecutan realmente:

A veces puede mostrar que el espacio vacío también se ejecuta. Esto significa que sus fonts no coinciden con su versión en tiempo de ejecución de las clases. Incluso si piensa que esto no es posible, así es, asegúrese de configurar las fonts correctas. O su tiempo de ejecución coincide con sus últimos cambios, dependiendo de lo que intente hacer.

Desde http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source

“Cuando se ejecuta en modo de depuración, haga clic derecho en el hilo en ejecución (en la pestaña de subprocesos) y seleccione Editar búsqueda de origen. En este punto, debe poder agregar el proyecto / jar necesario que contiene su código fuente”.

Agregué mi proyecto actual de esta manera, y resolvió mi problema

Tuve un problema similar con mi proyecto eclipse maven. Luché con este problema bastante tiempo y luego intenté reconstruir el proyecto con

mvn clean eclipse:eclipse 

y ayudó.

Elimine la configuración de depuración existente y cree una nueva. Eso debería resolver el problema.

Estaba enfrentando el mismo problema, seguí los pasos abajo.

Ventana => Preferencias => Java => JRE instalados ,

enter image description here

Usted ve en la pantalla de arriba Jre1.8.0_12 está seleccionado.

seleccione el JRE que está utilizando y haga clic en Editar . Ahora debería ver la pantalla abajo.

enter image description here

Haga clic en el directorio, busque Jdk, debería verse como la pantalla inferior. enter image description here

haga clic en Aceptar, y está hecho

Tuve el problema de que mi Eclipse no estaba depurando el código fuente de mi proyecto. Estaba obteniendo una página en blanco con “Nodo de código fuente encontrado”.

Haga clic en el botón Adjuntar código fuente. A continuación, elimine la carpeta “predeterminada” y luego haga clic en Agregar e ir a la ubicación de su proyecto y adjuntar. Esto funcionó para mí

Evidentemente, Eclipse no sabe automáticamente dónde está el código fuente de los flasks dependientes. No está claro por qué el depurador no pudo inspeccionar las variables una vez que se adjuntó la fuente. Una posibilidad es la fuente incorrecta / incompatible.

Suponiendo que tiene un proyecto maven y las fonts de las dependencias se descargan y están disponibles en el repository local, puede instalar m2eclipse , el complemento maven eclipse y ver si eso ayuda a resolver su problema.

Es posible que tenga un código fuente de una dependencia accesible para Eclipse. Pero Eclipse no conoce el código fuente del código que se carga dinámicamente. Por ejemplo, a través de Maven.

En el caso de Maven, te recomiendo que uses el plugin run-jetty-run:

http://code.google.com/p/run-jetty-run/

Como solución, también puede conectarse a una JVM en ejecución con el depurador y verá el código. Alternativamente, puede usar el complemento Búsqueda de fuente dinámica para Eclipse desde aquí:

https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup

Desafortunadamente no me ayudó, ya que tiene problemas con las rutas de Windows con espacios.

He completado una solicitud de mejora en Eclipse Bugzilla y si está de acuerdo con que este problema “Fuente no encontrada” desaparezca para siempre, vuélvalo a votar aquí:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065

¡Gracias!

Sasa

En mi caso en “Adjuntar fuente”, agregué el otro directorio de proyecto de maven en el panel “Configuración de archivo fuente”. Agregar el último archivo de versión del repository m2 no funciona. Todas las clases del otro proyecto de maven no se pudieron abrir.

enter image description here

Aquí la prueba fue mi otro proyecto maven que contiene todas las fonts de Java.

Tuve el mismo problema. En mi caso, he desactivado Window-Preferences-Java-Debug [Suspender ejecución en excepciones no detectadas]. Luego, la consola me mostró el error correcto: mi usuario de MySql no tenía privilegios para acceder a la base de datos. De acuerdo con este tema

Información: esta es una solución posible cuando usas maven (pom.xml) con un par de proyectos.

Si está trabajando con Maven, asegúrese de qué versión está tomando dentro del pom.xml correspondiente (por ejemplo, 1.0.1-SNAPSHOT). Es posible que su código esté actualizado, pero sus dependencias pom.xml siguen tomando las antiguas JAR / Snapshots (con el código anterior).

Encontrando el problema:

  • Intenta depurar el archivo correspondiente.
  • Por lo tanto, establezca un punto de interrupción en el área de código relevante.
  • Cuando aparece “fuente no encontrada” , asegúrese de enlazar en el proyecto correcto (donde se puede encontrar el archivo .java).
  • El archivo .class de comstackción se abre en el editor IDE.
  • Haga clic en “Vincular con el editor” para buscar el JAR / Snapshot correspondiente.
  • Ahora asegúrese de que este JAR sea el más reciente. Posiblemente haya uno más nuevo. En ese caso, escriba el número de versión más reciente en el pom.xml.
  • A continuación, realice una actualización y creación de maven (por ejemplo, “mvn clean install -U”) en el directorio de proyecto correcto.

Si está en eclipse o STS instale y use GC (GrepCode Plugin), algunas veces no necesita adjuntar el archivo .zip de origen en la ruta de su proyecto para que GrepCode funcione bien para usted.

He tenido un problema relacionado con la depuración del servidor de Glassfish en Eclipse. Esto se logró cargando el código fuente de un repository diferente (cambiando de SVN a GitHub). En el proceso, el servidor de Glassfish utilizó las clases comstackdas incorrectas y, por lo tanto, la fuente y el tiempo de ejecución no estarían sincronizados con los puntos de ruptura que aparecen en las líneas vacías.

Para resolver esto, cambie el nombre o elimine la carpeta superior del directorio de clases y Glassfish recreará todo el árbol del directorio de clases, incluida la actualización de los archivos de clase con la versión comstackda correctamente.

El directorio de clases se encuentra en: / workspace / glassfish3122eclipsedefaultdomain / eclipseApps / / WEB-INF / classes

En mi caso con los proyectos de tomcat he verificado el proyecto aquí: Ventana – Preferencias – Tomcat – Ruta de acceso a la fuente – Agregar proyectos Java a la ruta de origen

En mi caso, la versión de Maven del otro proyecto referenciado no coincidía con la versión del proyecto de prueba. Una vez que fueron iguales, el problema desapareció.

Cuando se ejecuta en modo de depuración, haga clic en Editar búsqueda de origen después de suspender el hilo. En este punto, deberíamos poder agregar el proyecto / jar necesario que contiene su código fuente. Después agregué mi proyecto actual de esta manera, y resolvió mi problema. Gracias

Si desea adjuntar código fuente a cualquier JAR mediante descarga automática, intente utilizar este complemento Eclipse Java Source Attacher

enter image description here

Tuve este problema mientras trabajaba en el código Java para procesar un archivo de Excel que contenía un conjunto de datos, luego lo convertí en un archivo .csv, intenté las respuestas a esta publicación, pero no funcionaron. el problema eran los archivos jar ellos mismos. Después de descargar los archivos jar necesarios uno por uno (versiones anteriores) y agregarlos a mi proyecto, el error “fuente no encontrada” desapareció. tal vez puedas verificar tus archivos jar. Espero que esto ayude.

esto funcionó para mí

haga clic derecho en el proyecto -> Propiedades -> Ensamblaje de despliegue -> agregue su jar

Vaya a la configuración de depuración en eclipse y use el objective debajo para ejecutar su aplicación.

-Dmaven.surefire.debug

p.ej

-Dmaven.surefire.debug exec: java

En mi caso, incluso después de Editar búsqueda de fuente y Agregar proyecto, no funcionó. Configuré la ruta de Comstackción del proyecto.

enter image description here

Después de eso, seleccioné la Biblioteca del Sistema JRE y funcionó.

enter image description here

Bueno, esto es lo que funcionó para mí. Intenté todas las soluciones posibles en StackOverflow que había. Traté de cambiar mi ubicación de origen en el menú de depuración, instalé el plugin de Eclipse m2e, cambié de Maven incrustado, instalé el run-jetty-run y nada funcionó. Ahora, voy a advertir que no estaba tratando de ver el código fuente de una persona externa, solo quería ver mi código PROPIO, pero cada vez que “intervino” en mis métodos que escribí que estaban en MI proyecto, obtuve el “Fuente ahora encontrado” error.

Después de preguntarle a un experto, mi problema fue que lo primero que hizo Eclipse fue llamar a un ClassLoader, que se puede ver en la stack de depuración. Todo lo que tenía que hacer era F6 (paso más allá) y luego me devolvió a mi llamada original y luego a F5 (intervenir). Y ahí estaba mi código. Suspiro … una solución tan simple pero una hora perdida.

Si estás tratando de depurar tu proyecto maven java, y eclipse no puede encontrar tu fuente, prueba uno de estos.

  1. Intenta agregar estas líneas en el pom.xml
 **src/main/java**... 

Pruebe maven-> update y luego depure

  1. Vaya al directorio raíz del proyecto;

mvn eclipse: eclipse

ahora prueba la depuración

En mi caso, el problema se resolvió haciendo clic en Remove All Breakpoints