2009-05-06 16 views
7

Estoy usando Eclipse 3.4.2 para desarrollar mi código. Como parte de la definición de mi proyecto, hago referencia a una biblioteca de utilidad a la que he adjuntado el código fuente. Hasta ahora, todo bien - Puedo ver esa fuente cuando saco las clases de la biblioteca y mientras estoy depurando.Eclipse: ¿Es posible editar la fuente de Java conocida a través del código fuente "adjunto"

Ahora, sin embargo, me gustaría hacer un cambio en una de las clases sin perder todas las características del editor Eclipse Java (específicamente cosas como consejos sobre herramientas y solución rápida). Estas características parecen funcionar cuando estoy viendo la fuente (puedo CTRL + LHaga clic en los nombres de los métodos, por ejemplo), pero es de solo lectura. Por otro lado, puedo abrir explícitamente el archivo fuente que me permitirá editarlo, pero pierdo todas las funciones de edición "inteligente".

Recientemente cambié a Eclipse de IntelliJ donde esto era posible, así que espero que también esté en Eclipse. Tenga en cuenta que aunque podría simplemente incluir el código como un proyecto en mi espacio de trabajo, realmente preferiría no hacerlo. El espacio de trabajo ya es bastante grande y no quiero retrasar aún más Eclipse añadiendo proyectos que rara vez tocaría.

Respuesta

7

No estoy seguro de que tu pregunta sea correcta. Cuando agrega una biblioteca precompilada a su ruta de compilación de proyectos (el JAR) y adjunta la fuente a este JAR, Eclipse le mostrará el código fuente cuando haga clic en una clase dentro del JAR. Lo mismo ocurre con el depurador, que también le permitirá pasar por las líneas de código en la fuente, si las clases en el JAR se compilaron con la información del número de línea.

Ahora lo que parece que quieres hacer es modificar las clases dentro del JAR (la vista de origen es solo una superposición que incluso puede estar desactivada, si adjuntas una versión diferente de la fuente), que no es posible, porque están envueltos en forma binaria en el archivo JAR, a pesar de que Eclipse es lo suficientemente inteligente como para mostrarlos individualmente.

Supongo que esperaría que el depurador intercambiara en caliente los cambios en el programa en ejecución. Esto solo puede hacerse a través de una recompilación una vez que haya terminado sus cambios. Por lo general, Eclipse lo hace automáticamente cuando guarda un archivo fuente Java. Sin embargo, como su archivo de origen no es parte del espacio de trabajo (o una carpeta externa declarada explícitamente como fuente de Java), no hará eso volver a compilar e intercambiar.

Recomendaría incluir el origen de su biblioteca externa como un proyecto en Eclipse y no preocuparse demasiado por el rendimiento. Trabajo con 3.4.2 todos los días y mi espacio de trabajo tiene alrededor de 45 proyectos abiertos con varias 10.000 clases y millones de líneas de código. Asigno un Gigabyte de RAM a la máquina virtual Eclipse y no tengo problemas con eso en una máquina Core2Duo 2.6GHz.

+0

No es tanto que espere que Eclipse "cambie en caliente" los cambios que realice en el sistema cuando lo ejecute. Le digo a Eclipse que obtenga la forma "construida" de las clases de ese JAR y espero que haga exactamente eso (como lo hace). Realmente es solo cuestión de tener toda la "asistencia" que proporciona el editor de Java si decido que necesito editar alguna clase que casualmente incluí en formato binario. Sin embargo, es bueno saber sobre los límites de tamaño: nuestra base de código es casi la misma y ahoga a IntelliJ. – sfitts

+0

Simplemente agregue el código fuente como un proyecto separado a Eclipse, y luego continúe y edite lejos –

Cuestiones relacionadas