2011-06-01 18 views
7

Mientras se discute another question me preguntó: @Aaron Digulla señaló lo siguiente:¿Cómo puedo verificar el estado del símbolo de depuración con Eclipse?

Si ha instalado el SDK de Java, no debería ser un archivo "src.zip" en el directorio raíz de la instalación de Java. Si falta, descargue Java nuevamente. Eclipse debe buscar la fuente automáticamente y mostrarla cuando abra el tipo JTable (o cuando haga clic en la línea en el seguimiento de la pila).

El archivo src.zip está presente para mí, pero todavía no puede acceder a la fuente de JTable como @Aaron dijo. ¿Cual podría ser el problema? ¿Cómo puedo resolver esto con Eclipse?

La "Fuente Desconocida" me preocupa, though. significa que su versión de Java no tiene símbolos de depuración. Asegúrese de que a) utiliza un SDK mientras desarrolla , b) que su SDK contiene símbolos de depuración, c) no indique comando java para eliminar los símbolos de depuración cuando carga clases.

a) Estoy usando Eclipse, ¿por qué no debería estar usando SDK?

b) ¿Cómo puedo saber si mi SDK contiene símbolos de depuración? Y si no es así, ¿cómo puedo agregarlos?

c) ¿Cómo puedo verificar si Eclipse está diciendo java para eliminar los símbolos de depuración?

Disculpe las preguntas triviales, pero me parece que no entiendo completamente el proceso de desarrollo de Java.

+0

¿Has abierto 'src.zip'? ¿Qué hay adentro? – Pops

+0

@Lord Torgamus: abierto, sí. Hay fuentes – Heisenbug

+0

¿Por qué no puede acceder al origen de 'JTable'? Por favor sé más específico. – Pops

Respuesta

6

a) Eclipse viene con su propio compilador de Java, por lo que si está utilizando Java Runtime Environment, no se encontrará con muchos problemas, excepto que pueden faltar extras como jarsigner y posiblemente el código fuente de JRE. La mejor manera de verificar su instalación es a través de su administrador de paquetes; sin embargo, si lo instaló de alguna otra manera, la observación cuidadosa del directorio generalmente puede diferenciar los dos (ver a continuación).

b) Las bibliotecas JRE generalmente se compilan sin símbolos de depuración presentes. Las librerías SDK típicamente los tienen. La depuración de Java se realiza iniciando la JVM con opciones de línea de comando que abren un puerto de depuración. El SDK conversa con la JVM solicitando que se establezcan puntos de interrupción a través de este puerto. Más tarde, si decide pasar la JVM, también envía los comandos de depuración paso/salto/rebobinado a través de este puerto. Los símbolos de "depuración" son en realidad tablas de códigos de bytes de JVM, que hacen referencia a qué línea de código fuente está vigente a partir de una instrucción de bytecode particular. Esto permite a los depuradores asociar los bytecodes en ejecución con los números de línea en el código fuente original.

c) Verifíquelo (desde el menú) Ventana-> Preferencias (en la columna del selector) expanda "Java", expanda "Ruta de compilación" en "Java" y seleccione "Variables de ClassPath". Verá algunas variables, incluida una llamada "JRE_SRC", que debe apuntar al archivo src.zip que contiene el código fuente de la biblioteca pública de JRE. Es una buena idea verificar JRE_LIB al mismo tiempo.

Un directorio de inicio de JDK normalmente contiene un subdirectorio "bin" y un subdirectorio "jre", por lo que si solo ve un subdirectorio "bin", es probable que se encuentre en el directorio de inicio de JRE. Con este conocimiento, con suerte podrá descifrar el resto.

+0

+1 muchas gracias por la ayuda. Ahora todo está más claro. JRC_SRC está vacío, lo arreglaré. Solo otra pregunta: creo que estoy usando bibliotecas JRE, no SDK, ¿cómo puedo cambiar eso? – Heisenbug

+0

@ 0verbose, primero descargue el JDK e instálelo. Si está en Linux, Windows o Solaris, descargue SUN/Oracle JDK. En otra cosa, consulte las instrucciones de su proveedor para el JDK. Luego tome nota del directorio "raíz" del JDK. Desde el mismo contexto "Java" en el diálogo de configuración, seleccione "JRE instalados" y agregue su directorio raíz JDK. Marque la casilla junto al JRE para que sea predeterminado para nuevos proyectos. Luego regrese y configure el nivel de compilación de "Compilador" con el de su JDK. Finalmente, es posible que deba establecer la ruta de compilación de los proyectos existentes para que se correspondan con la nueva configuración. –

1

Vaya a las preferencias (Ventana -> Preferencias) y escriba "JRE" en el campo de búsqueda.

Seleccione "JRE instalados". Asegúrese de que Java Runtime utilice la versión de Java que espera.

Si lo hace, selecciónelo, haga clic en "Editar". El ícono para "rt.jar" debe tener un pequeño símbolo de texto encima (debe ser diferente al dnsns.jar, por ejemplo).

Si no es así, haga clic en "Restaurar valores predeterminados". Si eso no funciona, comprueba dos veces la ruta.

Esto también debería resolver sus otros problemas.

Para comprobar si una clase contiene los símbolos de depuración, descompilarlo con javap -v (véase la siguiente pregunta: Check if Java bytecode contains debug symbols)

Algunas implementaciones de Java permiten ignorar los símbolos de depuración como clases se cargan. Esto puede causar "Fuente desconocida" para las clases que contienen símbolos. Estaba seguro de que existía una opción para Java de Sun pero no puedo encontrarla más.

+0

+1: gracias por la ayuda. ¡Has sido muy útil! – Heisenbug

Cuestiones relacionadas