2010-12-08 27 views
9

¿Hay alguna forma de reiniciar un programa en Eclipse? (preferiblemente 1 clic)Reiniciar una aplicación en Eclipse

Realmente me gustaría que la vista de la consola tuviera algo así como un botón de reinicio que mataría la aplicación y la reiniciaría con los últimos cambios.

Esto siempre me lleva al menos tres clics. Hago clic en la flecha hacia abajo al lado del círculo verde con el triángulo blanco (botón de reproducción) para abrir el menú desplegable, luego hago clic para elegir el principal de Java que quiero ejecutar, y luego para detenerlo, hago clic en el botón rojo terminar en el vista de consola ¿Hay alguna forma más fácil de hacer esto que requiera menos clics?

Respuesta

5

En Eclipse 4.1 abierta: windows-> Preferencias> llaves

en el tipo de texto filtro: terminan y relanzar

En la unión añadir su unión (i utilizar Shift-F5)

Para "cuando" seleccione "En Windows"

Esto lo hará en shorcut sencillo para usted.

+2

Gracias. Aunque no parece funcionar para mí. No estoy seguro de qué significa "En Windows". ¿Funcionará con mi cursor solo en el editor de texto o necesito algo especial seleccionado? Estoy usando Ubuntu Natty Narwhal y Eclipse 3.5.2. –

+4

Tengo el mismo problema. Para mí solo funciona ejecutar el programa en modo de depuración. – aioobe

+2

Este atajo está presente en las listas de configuración pero tampoco parece funcionar para mí. – h22

1

la vista de la consola tiene un botón de terminar (un cuadrado rojo) que detiene la ejecución. luego otro clic en el botón Ejecutar (el círculo verde con triángulo) comienza la ejecución nuevamente.
eso es lo que hago - 2 clics :)

+0

Es sólo dos clics si tiene abierto en el editor el archivo que desea ejecutar - de lo contrario es tres. –

0

No he encontrado una solución elegante para este problema, pero si su programa es de ejecución corta y puede vivir con algunas instancias aquí y allá, puede simplemente usar el comando de ejecución. Su atajo predeterminado es Ctrl + F11. Cada vez que presione esto, su aplicación se reiniciará. ¡PERO! Si presiona esto mientras la aplicación todavía se está ejecutando, se ejecutará otra instancia porque la instancia "anterior" no finalizará automáticamente.

Hay formas de terminar realmente su aplicación usando teclas de método abreviado, pero eso requiere establecer puntos de interrupción y luego usar el comando "terminar", y eso no es muy elegante.

+0

* "... y puede vivir con algunas instancias aquí y allá ..." * - Desafortunadamente esto excluye todos los servidores (como servidores web) que necesitan vincularse a un puerto específico. – aioobe

2

Si utiliza "compilación automática", es muy probable que los cambios se apliquen en el programa en ejecución, sobre la marcha. Como tal, la mayoría de los cambios serán efectivos directamente sin necesidad de reiniciar.

Si hay una diferencia estructural y Eclipse no puede insertar el nuevo código (por ejemplo, si cambia las clases anónimas, o patrones de herencia), se le pedirá un cuadro de diálogo que le invita a reiniciar la aplicación con un clic :

alt text

las excepciones son cuando se cambia el valor de una variable estática (o de la inicialización de una clase que no se ejecuta de nuevo hasta que reinicie la aplicación). En este caso, deberá reiniciar explícitamente con otro método.

+0

No estoy seguro de que eso sea siempre cierto. Estás corriendo en JBoss en tu ejemplo, que creo que es lo que te da esa habilidad. –

+0

@Ben - funciona con cualquier aplicación Java, la captura de pantalla fue solo una ilustración. Sin embargo, hay limitaciones, como escribí. Pero mientras haya "creado automáticamente" y esté depurando su programa, intentará reemplazar el código sobre la marcha. Más sobre esto en [este mismo sitio] (http://stackoverflow.com/search?q=hot+code+replace). – Gnoupi

+0

¡Guau! ¡No puedo creer que nunca me haya dado cuenta de esto! Muchas gracias. Una nota importante es que debe estar en modo de depuración. Esto no funcionará si solo presionas ejecutar. –

0

Al desarrollar mi propia aplicación de red, he agregado un código para verificar si la instancia anterior se está ejecutando y, de ser así, envíe un comando acordado sobre el socket de red para un apagado ordenado. Si bien este enfoque puede no ser la mejor solución universal, permite el cierre limpio de la instancia anterior, en lugar de simplemente matarlo.

Cuestiones relacionadas