Intellij scheint bei meiner Installation keinen grundlegenden Hot-Code-Austausch durchzuführen.
Für diesen Code:
public class MainTest {
public void method1() {
System.out.println("Breakpoint here");
}
public void method2() {
System.out.println("Line that will get 24 modified");
}
public static void main(String[] args) {
System.out.println("First print here");
MainTest mainTest = new MainTest();
mainTest.method1();
mainTest.method2();
System.out.println("Line that I do not modify");
}
}
Ich setze einen Haltepunkt auf mainTest.method1();
, ändere dann die Zeichenfolge bei method2 (), drücke Strg + s und fahre Schritt für Schritt fort. Leider wird die Laufzeit nicht aktualisiert, alte Zeichenfolge wird gedruckt. Full Stop - Compile - Run druckt die neue Zeichenfolge. Mein Fazit ist also, dass Hot-Swap nicht funktioniert.
Muss ich Einstellungen vornehmen, um den Hot-Code-Austausch zu aktivieren?
- Ubuntu, JDK 1.6
- Intellij 10.5 Ultimate (Bewertung)
intellij-idea
hotswap
Maxim Veksler
quelle
quelle
Antworten:
Nachdem Sie Ihre Klasse gespeichert haben, während Sie auf Ihren Haltepunkt warten, kompilieren Sie Ihre Klasse einfach mit
Build -> Compile 'MainTest.java'
oder drücken SieCtrl+Shift+F9
mit den Standardtastenbindungen.IntelliJ IDEA zeigt dann einen kleinen Dialog an, in dem Sie gefragt werden, ob Sie diese Klasse neu laden möchten.
quelle
Nach den folgenden Änderungen und dem Aktivieren des Hot-Swap dauerte eine Änderung in einer Java-Datei 1-2 Sekunden nach dem Neustart. (Die anfängliche Startzeit beträgt für mich ungefähr 7 Sekunden).
Ich hoffe unten Methode hilft ...
Zuerst müssen Sie im Einstellungsmenü die Option „Projekt automatisch erstellen“ aktivieren.
Einstellungsmenü öffnen;
Sie können zum Hauptmenü gehen und auf klicken.
oder Sie können die folgende Verknüpfung über die Tastatur eingeben.
Dann können Sie
Make project automatically
wie im Bild unten überprüfen ;Zweitens müssen Sie die
compiler.automake.allow.when.app.running
Registrierungseinstellung als true ändern .Um die Registrierung zu öffnen, müssen Sie auf die folgende Tastenkombination klicken:
Geben Sie
registry
wie im Bild unten ein, wählen SieRegistry
die Eingabetaste der Tastatur aus und drücken Sie die Eingabetaste.Nach
Registry
Fenster geöffnet, geben Sie,compiler.automake
um zu sehencompiler.automake.allow.when.app.running
Option, und überprüfen Sie es wie im Bild unten;Anschließend müssen Sie IntelliJ neu starten, damit die Registrierungsänderungen funktionieren.
quelle
Debugger > HotSwap
In Intellij 11 gibt es eine Option.quelle
Gehen Sie zu Einstellungen -> Wählen Sie Debug -> HotSwap
quelle
Ich wollte, dass Hotswap jedes Mal automatisch ausgeführt wird, wenn ich eine Java-Datei speichere. Keine der anderen Antworten hat dies getan, also habe ich nur:
Action: Hotswap
Am Ende des Makros hinzugefügt (Run -> Reload Changed Classes
)quelle
Bei Personen, bei denen das gleiche Problem wie bei mir auftritt , ist möglicherweise der folgende kürzlich aufgetretene Fehler aufgetreten, der sich auf das Update 2020.2 auswirkt : https://youtrack.jetbrains.com/issue/IDEA-247530?_ga=2.116305920.729836936.1599654650-984156210.1599654650
TL; DR Um dieses Problem zu umgehen, müssen Sie das Groovy-Plugin erneut aktivieren.
quelle
Ich habe dieses Problem unter Ubuntu festgestellt. Ich hatte auch ein anscheinend nicht verwandtes Problem, bei dem IntelliJ einen Fehler bezüglich des Limits für die Dateiüberwachung gab (ich entschuldige mich, dass ich nicht mehr die genaue Fehlermeldung habe). Um dieses spätere Problem zu lösen, habe ich die folgenden Schritte ausgeführt:
Fügen Sie die folgende Zeile entweder zu einer
/etc/sysctl.conf
Datei oder zu einer neuen * .conf-Datei (z. B.idea.conf
) im/etc/sysctl.d/
Verzeichnis hinzu:Führen Sie dann diesen Befehl aus, um die Änderung zu übernehmen:
sudo sysctl -p --system
Jetzt werden meine React-Komponenten neu erstellt und im laufenden Betrieb ausgetauscht.
Quelle
quelle
Ich denke, Sie fragen danach,
quelle