Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Intellij idea 如何启用Intellij热代码交换_Intellij Idea_Hotswap - Fatal编程技术网

Intellij idea 如何启用Intellij热代码交换

Intellij idea 如何启用Intellij热代码交换,intellij-idea,hotswap,Intellij Idea,Hotswap,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

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()上设置了一个断点然后在method2()处修改字符串,点击ctrl+s并继续逐步操作。遗憾的是,运行时未更新,正在打印旧字符串。句号-compile-run打印新字符串。所以我的结论是热插拔不起作用

是否需要设置任何设置以启用热代码交换

  • Ubuntu,JDK1.6
  • Intellij 10.5最终版(评估)

在等待断点时保存类后,只需使用
Build->Compile'MainTest.java'
重新编译类,或使用标准键绑定按
Ctrl+Shift+F9


IntelliJ IDEA随后将显示一个小对话框,询问您是否要重新加载该类。

IntelliJ 11中有一个
调试器>热交换
选项。

转到设置-->选择调试-->热交换


在进行以下修改并启用热插拔后,Java文件中的更改需要1-2秒的重新启动时间。(我的初始启动时间约为7秒)

我希望下面的方法有帮助


首先,您需要选中“首选项”菜单中的“自动生成项目”。

打开首选项菜单

您可以进入顶部菜单并单击

IntelliJ IDEA->首选项

或者您可以通过键盘键入以下快捷键

cmd+option+s

然后,您可以选中
自动生成项目
,如下图所示

其次,您需要将
compiler.automake.allow.when.app.running
注册表设置修改为true。

要打开注册表,您需要单击下面的键盘快捷键:

cmd+shift+a

如下图所示键入
registry
,选择
registry
,然后点击键盘的enter键

打开
Registry
窗口后,键入
compiler.automake
以查看
compiler.automake.allow.when.app.running
选项,并按下图所示进行检查


然后,您需要重新启动IntelliJ以使注册表更改生效。

我在Ubuntu上遇到了这个问题。我还遇到了一个显然无关的问题,IntelliJ给出了一个关于文件监视限制的错误(很抱歉,我不再有确切的错误消息)。为了解决后面的问题,我执行了以下步骤:

  • 将以下行添加到
    /etc/sysctl.conf
    文件或
    /etc/sysctl.d/
    目录下的新*.conf文件(例如
    idea.conf
    )中:

    fs.inotify.max_user_watches = 524288
    
  • 然后运行此命令以应用更改:

    sudo sysctl-p——系统

  • 现在,我的React组件重建和热插拔工作正常


    我希望每次保存Java文件时,hotswap都能自动运行。其他答案都没有这样做,所以我只是:

  • 创建了将在保存时运行的宏:
  • 在宏的末尾添加了
    操作:热交换
    运行->重新加载更改的类

  • 对于任何遇到与我相同问题的人,您可能已经遇到了以下影响2020.2更新的最新bug


    TL;DR作为一种解决方法,您需要重新激活Groovy插件。

    我想您是在问这个问题

  • 右键单击java类
  • 选择编译并重新加载文件

  • 我从来没有听说过命令行应用程序的热插拔,只适用于web应用程序。来自eclipse,我希望intellij也能做到这一点。我遗漏了什么吗?我也面临着很多问题,然后我知道如果你使用虚拟机,那么热插拔将不会很好,谢谢。我可以让intellij自动编译吗?(一个更好的功能是允许:保存而不自动编译,然后在默认情况下打开按需编译)!有一个“Eclipse模式”插件,其工作原理与Eclipse的后台增量编译完全相同。评论不错,遗憾的是,该插件似乎不再在intellij 13中维护使用:File->Settings->(在搜索字段中键入HotSwap),即使使用该插件,我仍然必须手动指示intellij重新编译。这确实使它变得更容易,因为您不必回答是否要重新加载类的问题。当我调试应用程序,然后构建项目,或者只编译文件时,HotSwap对我有效。但是,即使在完成上面的注册表设置后,它也无法保存。是因为我处于调试状态而没有运行吗?@DKroot,是的-在IntelliJ中,热插拔必须处于调试模式才能工作。我有类似的问题。然而,这(增加文件观察者)并没有帮助我。