如何启用Intellij热码交换
Intellij似乎没有在我的安装上进行基本的热代码交换。
对于这个代码:
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"); } }
我在mainTest.method1();
上放置了一个断点mainTest.method1();
然后在method2()中修改string,按Ctrl + s并继续一步一步。 不幸的是运行时没有更新,旧的string正在打印。 完全停止 – 编译 – 运行确实打印新的string。 所以我的结论是热插拔不工作。
有什么设置,我需要设置启用热代码交换?
- Ubuntu,JDK 1.6
- Intellij 10.5 Ultimate(评测)
在等待断点的时候保存你的类之后,只需使用Build -> Compile 'MainTest.java'
重新编译你的类,或者使用标准键绑定按Ctrl+Shift+F9
。
然后,IntelliJ IDEA会显示一个小对话框,询问您是否要重新加载该类。
在intellij 11中有一个Debugger > HotSwap
选项。
经过以下修改并启用热插拔后,Java文件中的更改需要1-2秒的重新启动时间。 (我的初始开始时间是7秒左右)。
我希望下面的方法帮助…
首先,您需要在首选项菜单中选中“自动生成项目”。
打开首选项菜单;
你可以去顶部菜单并点击;
IntelliJ IDEA – >首选项
或者你可以通过键盘input下面的快捷方式
cmd,
然后,您可以select“自动生成项目”,如下图所示。
其次,你需要修改“compiler.automake.allow.when.app.running”registry设置为true。
要打开registry,您需要点击下面的键盘快捷键;
CMD移位
如下图所示input“registry”,select“注册”,然后点击键盘上的回车键。
在“注册”窗口打开后,input“compiler.automake”查看“compiler.automake.allow.when.app.running”选项,如下图所示。
比,您需要重新启动IntelliJ以使registry更改工作。
转到设置 – >selectdebugging – >热交换