如何启用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 – >热交换

在这里输入图像说明