2010-12-08 8 views
9

Gibt es eine Möglichkeit, ein Programm in Eclipse neu zu starten? (vorzugsweise 1-Klick)Neustart einer App in Eclipse

Ich wünschte wirklich, die Konsolenansicht hätte so etwas wie eine Schaltfläche zum Neustarten, die die App beenden und sie mit den neuesten Änderungen neu starten würde.

Das dauert immer mindestens drei Klicks. Ich klicke auf den Abwärtspfeil neben dem grünen Kreis mit dem weißen Dreieck (Play-Taste), um das Dropdown-Menü zu öffnen, dann klicke ich, um den Java-Hauptbildschirm auszuwählen, den ich ausführen möchte, und dann klicke ich auf die rote Quadrat-Schaltfläche Konsolenansicht. Gibt es einen einfacheren Weg dies zu tun, der weniger Klicks erfordert?

Antwort

5

in Eclipse 4.1 offen: Windows-> Einstellungen-> Tasten

im Filter Textart: beenden und Relaunch

In der Bindung fügen Sie Ihre Bindung (i verwenden Shift-F5)

Für "wenn" wählen Sie "In Windows"

Dies wird es in Single Shorcut für Sie tun.

+2

Danke. Es scheint aber nicht für mich zu funktionieren. Ich bin mir nicht ganz sicher, was "In Windows" bedeutet. Funktioniert es mit meinem Cursor nur im Texteditor oder brauche ich etwas spezielles ausgewählt? Ich benutze Ubuntu Natty Narwhal und Eclipse 3.5.2. –

+4

Ich habe das gleiche Problem. Für mich funktioniert es nur, ich starte das Programm im Debug-Modus. – aioobe

+2

Diese Verknüpfung ist in den Konfigurationslisten vorhanden, funktioniert aber für mich auch nicht. – h22

1

Die Konsolenansicht hat eine Schaltfläche zum Beenden (ein rotes Quadrat), die die Ausführung stoppt. Ein weiterer Klick auf den Run-Button (der grüne Kreis mit Dreieck) beginnt erneut.
das ist, was ich tue - 2 Klicks :)

+0

Es ist nur zwei Klicks, wenn Sie im Editor geöffnet haben die Datei, die Sie ausführen möchten - sonst drei es ist. –

0

Ich habe eine elegante Lösung für dieses Problem wurde nicht gefunden, aber wenn Ihr Programm kurzen Lauf ist, und Sie können mit einigen wenigen Fällen hier und dort leben, können Sie nur verwenden, der Laufbefehl. Die Standardverknüpfung lautet Strg + F11. Jedes Mal, wenn Sie diese Taste drücken, wird Ihre Anwendung neu gestartet. ABER! Wenn Sie diese Taste drücken, während Ihre Anwendung noch läuft, wird eine andere Instanz ausgeführt, da die "alte" Instanz nicht automatisch beendet wird.

Es gibt Möglichkeiten, um Ihre Anwendung wirklich mit Tastenkürzeln zu beenden, aber das erfordert die Einstellung von Haltepunkten und dann den Befehl "Beenden", und das ist nicht sehr elegant.

+0

* "... und Sie können hier und da mit ein paar Instanzen leben ..." * - Leider schließt dies alle Server (wie Webserver) aus, die an einen bestimmten Port gebunden werden müssen. – aioobe

2

Wenn Sie "automatisch erstellen" verwenden, ist es sehr wahrscheinlich, dass Ihre Änderungen im laufenden Programm angewendet werden. Daher werden die meisten Änderungen direkt wirksam, ohne dass ein Neustart erforderlich ist.

Wenn es einen strukturellen Unterschied gibt und Eclipse den neuen Code nicht einfügen kann (z. B. wenn Sie anonyme Klassen oder Vererbungsmuster ändern), werden Sie mit einem Dialogfeld aufgefordert, die Anwendung mit einem Klick neu zu starten :

alt text

Ausnahmen sind, wenn Sie den Wert eines statischen variablen ändern (oder der Initialisierung einer Klasse, die wiederum wird erst ausgeführt, wenn Sie die Anwendung neu starten). In diesem Fall müssen Sie explizit mit einer anderen Methode neu starten.

+0

Ich bin mir nicht sicher, ob das immer stimmt. Sie laufen in JBoss in Ihrem Beispiel, was meiner Meinung nach Ihnen diese Fähigkeit gibt. –

+0

@Ben - es funktioniert mit jeder Java-Anwendung, der Screenshot war nur eine Illustration. Es gibt jedoch Einschränkungen, wie ich es geschrieben habe. Aber solange Sie "automatisch erstellen" haben und Sie Ihr Programm debuggen, wird es versuchen, den Code im laufenden Betrieb zu ersetzen. Mehr dazu auf dieser Seite (http://stackoverflow.com/search?q=hot+code+replace). – Gnoupi

+0

Wow! Ich kann nicht glauben, dass ich das nie realisiert habe! Ich danke dir sehr. Eine wichtige Anmerkung ist, dass Sie im Debug-Modus sein müssen. Dies funktioniert nicht, wenn Sie nur auf "Ausführen" klicken. –

0

Wenn meine eigene Netzwerk-Anwendung zu entwickeln, ich habe einen Code zu überprüfen, ob die ältere Instanz ausgeführt wird, und wenn ja, zugegeben, dann einen vereinbarten Befehl über die Netzwerk-Buchse für ordnungsgemäßes Herunterfahren senden. Während dieser Ansatz nicht die beste als universelle Lösung sein kann, ist somit eine saubere Abschaltung der vorherigen Instanz, anstatt sie einfach zu töten.