Intellij idea 如何启用Intellij热代码交换
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
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中,热插拔必须处于调试模式才能工作。我有类似的问题。然而,这(增加文件观察者)并没有帮助我。