Reputation: 30192
Intellij does not seem to be doing basic hot code swap on my installation.
For this 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");
}
}
I put a breakpoint on mainTest.method1();
then modify the string at method2(), hit ctrl+s and continue to step by step. Unfortunately the runtime is not updated, old string is being printed. Full stop - compile - run does print the new string. So my conclusion is hot-swap not working.
Is there any settings I need to set to enable hot code swap?
Upvotes: 112
Views: 167661
Reputation: 842
I think you are asking about this,
Upvotes: 8
Reputation: 1156
For anyone experiencing the same problem as me, you might have incurred in the following recent bug affecting the 2020.2 update: https://youtrack.jetbrains.com/issue/IDEA-247530?_ga=2.116305920.729836936.1599654650-984156210.1599654650
TL;DR As a workaround, you need to re-activate the Groovy plugin.
Upvotes: 3
Reputation: 1329
After below modifications and enabling hot swap, a change in a Java file took 1-2 seconds of restart time. (Initial start time is around 7 seconds for me).
I hope below method helps...
First, you need to check “Make project automatically” in preferences menu.
To open preferences menu;
you can go to top menu and click;
IntelliJ IDEA -> Preferences
or you can type below shortcut via keyboard;
cmd + option + s
Then, you can check Make project automatically
as in below picture;
Secondly, you need to modify compiler.automake.allow.when.app.running
registry setting as true.
To open registry, you need to click below keyboard shortcut:
cmd + shift + a
Type registry
as in below picture, select Registry
, and hit enter button of keyboard;
After Registry
window opened, type compiler.automake
to see compiler.automake.allow.when.app.running
option, and check it as in below picture;
Then, you need to restart IntelliJ to make registry changes work.
Upvotes: 35
Reputation: 90043
I wanted hotswap to automatically run every time I saved a Java file. None of the other answers did this so I just:
Action: Hotswap
at the end of the macro (Run -> Reload Changed Classes
)Upvotes: 9
Reputation: 83537
I encountered this problem on Ubuntu. I also had an apparently unrelated issue where IntelliJ gave an error about the file watch limit (my apologies that I no longer have the exact error message). To solve this later issue I did the following steps:
Add the following line to either /etc/sysctl.conf
file or a new *.conf file (e.g. idea.conf
) under /etc/sysctl.d/
directory:
fs.inotify.max_user_watches = 524288
Then run this command to apply the change:
sudo sysctl -p --system
Now my React components rebuild and hot swap just fine.
Upvotes: 0
Reputation: 13101
After saving your class while waiting on your breakpoint just recompile your class with Build -> Compile 'MainTest.java'
or press Ctrl+Shift+F9
with the standard key bindings.
IntelliJ IDEA will then show a small dialog in which it asks you if you want to reload that class.
Upvotes: 154